DEBUG (7): Güvenlik sorunu: block_name beyaz listeye eklenmedi. (Magento system.log)


22

In system.logmy Magento ait dosyasında aşağıdaki hata iletisi var yüklemek

DEBUG (7): Güvenlik sorunu: block_namebeyaz listeye alınmadı.

block_nameMağazamda kullanılan bir bloğun adı nerede .

Bu ne anlama geliyor ve nasıl düzeltebilirim?

Yanıtlar:


28

Bu mesaj, Magento mağazasında kullanılan bloklardan birinin beyaz listede olmadığını gösterir.

İle Güvenlik Yaması SUPEE-6788 ve Magento CE 1.9.2.2 bloklar için yeni bir beyaz liste tanıtıldı. Magento artık izin verilen blokların veya direktiflerin beyaz bir listesini içeriyor. Bir modül veya uzantı, CMS sayfalarında veya e-postalarındaki {{config path=”web/unsecure/base_url”}}ve gibi değişkenleri kullanıyorsa {{block type=rss/order_new}}ve yönergeler bu listede yoksa, bunları veritabanınızla eklemeniz gerekir. Bir blok beyaz listede değilse, oluşturulmaz.

Hata

İtibariyle Güvenlik Yaması SUPEE-7405 ve Magento CE 1.9.2.3 kolayca sizin için beyaz listeden eksik bloklar belirleyecektir yeni çekirdek özelliği vardır. İçindeki blockDirective($construction)işlev

app/code/core/Mage/Core/Model/Email/Template/Filter.php

güncellendi ve şimdi şöyle görünüyor:

/**
 * Retrieve Block html directive
 *
 * @param array $construction
 * @return string
 */
public function blockDirective($construction)
{
    $skipParams = array('type', 'id', 'output');
    $blockParameters = $this->_getIncludeParameters($construction[2]);
    $layout = Mage::app()->getLayout();
    $block = null;

    if (isset($blockParameters['type'])) {
        if ($this->_permissionBlock->isTypeAllowed($blockParameters['type'])) {
            $type = $blockParameters['type'];
            $block = $layout->createBlock($type, null, $blockParameters);
        } else {
            Mage::log('Security problem: ' . $blockParameters['type'] . ' has not been whitelisted.');
        }
    } elseif (isset($blockParameters['id'])) {
        $block = $layout->createBlock('cms/block');
        if ($block) {
            $block->setBlockId($blockParameters['id']);
        }
    }

    if ($block) {
        $block->setBlockParams($blockParameters);
        foreach ($blockParameters as $k => $v) {
            if (in_array($k, $skipParams)) {
                continue;
            }
            $block->setDataUsingMethod($k, $v);
        }
    } else {
        return '';
    }

    if (isset($blockParameters['output'])) {
        $method = $blockParameters['output'];
    }
    if (!isset($method) || !is_string($method) || !method_exists($block, $method)) {
        $method = 'toHtml';
    }
    return $block->$method();
}

Yeni haber

Mage::log('Security problem: ' . $blockParameters['type'] . ' has not been whitelisted.');

Beyaz listeden bir blok eksikse, sistem bunu algılar ve içinde bulunan system.logdosyadaki eksik blok adını içeren bir hata basar.

[your magento install dir]/var/log/

Elbette bu mesajı alabilmek için günlüğe kaydetmeyi etkinleştirmiş olmanız gerekir. Bu göreceğiniz hatadır

DEBUG (7): Güvenlik sorunu: block_namebeyaz listeye alınmadı.

Nasıl düzeltilir

Bunu düzeltmek için eksik blok ismini elle beyaz listeye eklemelisiniz. Sadece güvendiğiniz blokları ekleyin. Bloğun nereden geldiğini bilmiyorsanız, önce bunu öğrenin. Eksik bloğu eklemek istediğinizden emin olduğunuzda, daha sonra Magento Yönetici Panelinizde

System > Permissions > Blocks

ve Add New Blockdüğmesine tıklayın. Buradan eksik bloğu beyaz listeye ekleyebilirsiniz. Sadece alana block_namehata mesajınızda görünenleri girin,Block Name *Is Allowed "Evet" ve hit Save Blockdüğmesini.

Önbelleği temizlemeyi unutma. Kayıp bloğunuza şimdi izin verilir ve hatanın giderilmesi gerekir.

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.