Http https URL'si nasıl yapılır?


11

Magento'nun hangi sayfanın güvenli ve hangi sayfanın güvenli olmaması gerektiğini nasıl belirlediğini merak ediyorum.

Anladığım kadarıyla, magento ödeme ve giriş sayfasını varsayılan olarak güvenli hale getirir ve frontend/secure_url/....modülümün config.xml yoluyla yapılandırma yolu altında belirterek diğer sayfaları güvenli hale getirebilirim

Yönetici tarafı yapılandırması iyi görünüyor. SSL hem ön uçta hem de arka uçta etkindir. Arka uç tamamen https'nin üzerindedir. Ön uçta çoğu sayfa ana sayfa da dahil olmak üzere http altında iyi çalışır ve ödeme ve giriş sayfaları beklendiği gibi https'ye yönlendirilir.

Ancak özel bir modülün denetleyicisi / eylemi de dahil olmak üzere http'de kalmayı beklediğim https'ye yönlendirilen birkaç başka url var.

Bu hata ayıklamak için bazı işaretçiler gerekir? Yeniden yönlendirilmelerini durdurmak için kullanabileceğim başka bir yapılandırma var mı?


Bazı örnekler / kodlar verebilir misiniz (örneğin, özel modülün XML yapılandırması)? Ayrıca, https: // http: //;)
simonthesorcerer

Yanıtlar:


3

Denilen sadece bunun için bir fonksiyon yoktur shouldUrlBeSecurebulunan app/code/core/Mage/Core/Model/Config.phphat üzerinde 1477.

İşte tam fonksiyon:

/**
 * 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];
}

Hangi URL'lerin güvenli olması gerektiğini görmek Mage::log($secureUrls)için ififadenin içine bir basit ekleyebilirsiniz . Günlük girişim şöyle görünüyordu:

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/
)

Şimdi Magento'nun nasıl değiştiğini anlamak HTTPiçin büyük olasılıkla içerideki Zend çerçevesine dalacağınızı HTTPS düşünüyorum çünkü en çok ilgi çeken dosyalar içeriyor. Neyse, umarım bu yardımcı oldu. İyi şanslar!liblib/Zend/Http/*


3

İçin, kullandığınız istiyorsanız secure url için any other moduleso zaman meydana gelen bazı değişiklikler gereken config.xmlo modüllerin .. İlk önyüzü kullanılan etiketler için

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

Ve eğer ürün sss url için o zaman değiştirmek $this->getUrl('productfaq/index/index', array('_secure'=>true));

Uzantı yolum \app\code\local\Amit\Productfaq\etc.

Config.xml dosyasında aşağıdaki değişiklikleri yapmanız gerekir

     <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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.