https URL을 http로 만드는 방법


11

magento가 어떤 페이지가 안전해야하고 어떤 페이지가 안전하지 않아야하는지 결정하는 방법이 궁금합니다.

내가 이해 한 바에 따르면, magento는 기본적으로 체크 아웃 및 로그인 페이지를 보안으로 설정하며 frontend/secure_url/....모듈의 config.xml을 통해 구성 경로에서 다른 페이지를 지정하여 다른 페이지를 보안으로 설정할 수 있습니다

관리자 측 구성은 괜찮은 것 같습니다. 프런트 엔드 및 백엔드 모두에서 SSL을 사용할 수 있습니다. 백엔드가 완전히 끝났습니다. 프론트 엔드에서 대부분의 페이지는 홈페이지를 포함하여 http에서 제대로 작동하며 결제 및 로그인 페이지는 예상대로 https로 리디렉션됩니다.

그러나 몇 가지 다른 URL이 https로 리디렉션되어 사용자 정의 모듈의 컨트롤러 / 작업을 포함하여 http로 남아있을 것으로 예상됩니다.

이것을 디버깅하는 방법에 대한 조언이 필요합니까? 리디렉션을 중지하는 데 사용할 수있는 다른 구성이 있습니까?


몇 가지 예제 / 코드를 제공 할 수 있습니까 (예 : 사용자 정의 모듈의 XML 구성)? 또한 https : //를 http : //로 리디렉션하려고 할 때 "debugging"에 대해서는 언급하지 않습니다.
simonthesorcerer

답변:


3

on에 shouldUrlBeSecure위치한 이라는 함수가 있습니다 .app/code/core/Mage/Core/Model/Config.php1477

다음은 완전한 기능입니다.

/**
 * Check whether given path should be secure according to configuration security requirements for URL
 * "Secure" should not be confused with https protocol, it is about web/secure/*_url settings usage only
 *
 * @param string $url
 * @return bool
 */
public function shouldUrlBeSecure($url)
{
    if (!Mage::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_SECURE_IN_FRONTEND)) {
        return false;
    }

    if (!isset($this->_secureUrlCache[$url])) {
        $this->_secureUrlCache[$url] = false;
        $secureUrls = $this->getNode('frontend/secure_url');
        foreach ($secureUrls->children() as $match) {
            if (strpos($url, (string)$match) === 0) {
                $this->_secureUrlCache[$url] = true;
                break;
            }
        }
    }

    return $this->_secureUrlCache[$url];
}

보안해야하는 URL을 확인하려면 명령문 Mage::log($secureUrls)안에 간단한 URL을 추가하십시오 if. 이것이 내 로그 항목의 모습입니다.

2014-02-12T11:55:26+00:00 DEBUG (7): Mage_Core_Model_Config_Element Object
(
    [install] => /install/wizard/checkSecureHost
    [customer] => /customer/
    [sales] => /sales/
    [authorizenet_paygate] => /paygate/authorizenet_payment
    [checkout_onepage] => /checkout/onepage
    [checkout_multishipping] => /checkout/multishipping
    [paypal_express] => /paypal/express
    [paypal_standard] => /paypal/standard
    [paypal_express_callbackshippingoptions] => paypal/express/callbackshippingoptions
    [googlecheckout_redirect] => /googlecheckout/redirect/
    [googlecheckout_beacon] => /googlecheckout/api/beacon/
    [googlecheckout_api] => /googlecheckout/api/
    [review_customer] => /review/customer/
    [tag_customer] => /tag/customer/
    [wishlist] => /wishlist/
    [paypaluk_express] => /paypaluk/express
    [rss_catalog_review] => /rss/catalog/review
    [rss_order_new] => /rss/order/new
    [rss_catalog_notifystock] => /rss/catalog/notifystock
    [centinel] => /centinel/
    [newsletter_manage] => /newsletter/manage/
    [downloadable] => /downloadable/customer/
    [downloadable_download] => /downloadable/download/
    [ogone_api] => /ogone/api
    [persistent_onepage_register] => /persistent/index/saveMethod
    [checkout_cart] => /checkout/cart
    [storecredit_info] => /storecredit/info/
    [giftcard_customer] => /giftcard/customer/
    [enterprise_pbridge_pbridge] => /enterprise_pbridge/pbridge/
    [invitation] => /invitation/
)

이제 젠토 스위치 방법을 알아낼하기 HTTPHTTPS 내가 생각하는 가장 가능성이있는 젠드 프레임 워크에 다이빙을했을 lib내부 lib/Zend/Http/*가 가장 관심의 파일이 포함되어 있기 때문이다. 어쨌든 이것이 도움이되기를 바랍니다. 행운을 빕니다!


3

를 들어, 사용하려는 경우 secure url 를 위해 any other modules다음 몇 가지 변경해야 config.xml하는 모듈의 .. 먼저 프론트 엔드 사용되는 태그

<secure_url>
            <productfaq>/productfaq</productfaq>
        </secure_url>

그리고, productfaq url 인 경우 변경하십시오 $this->getUrl('productfaq/index/index', array('_secure'=>true)).

내 확장 경로 \app\code\local\Amit\Productfaq\etc.

config.xml에서 아래를 변경해야합니다.

     <frontend>
            <routers>
                <productfaq>
                    <use>standard</use>
                    <args>
                        <module>Amit_Productfaq</module>
                        <frontName>onestepcheckout</frontName>
                    </args>
                </productfaq>
            </routers>
            <layout>
                <updates>
                    <productfaq>
                        <file>productfaq.xml</file>
                    </productfaq>
                </updates>
            </layout>
        <!-- add secure url for extesnion, for that  
url productfaq automatically appnend https:  -->
             <secure_url>
                <productfaq>/productfaq</productfaq>
            </secure_url>
        </frontend>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.