Answers:
此消息表示您的Magento商店中使用的区块之一不在白名单中。
通过安全补丁SUPEE-6788和Magento CE 1.9.2.2,引入了新的块白名单。Magento现在包括允许的块或指令的白名单。如果一个模块或扩展使用变量,如{{config path=”web/unsecure/base_url”}}和{{block type=rss/order_new}}CMS中的网页或电子邮件,而指令是不在此列表中,您需要将它们与你的数据库添加。如果某个块不在白名单中,则不会呈现该块。
错误
从SUPEE-7405安全补丁和Magento CE 1.9.2.3开始,有一项新的核心功能,可以轻松为您识别白名单中缺少的块。中的blockDirective($construction)功能
app/code/core/Mage/Core/Model/Email/Template/Filter.php已更新,现在看起来像这样:
/**
 * 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();
}注意新
Mage::log('Security problem: ' . $blockParameters['type'] . ' has not been whitelisted.');
如果白名单中缺少某个块,则系统将对其进行检测,并在system.log位于以下位置的文件中打印一个错误,其中包括缺少的块名称
[your magento install dir]/var/log/当然,您必须启用日志记录才能获取此消息。这是您会看到的错误
调试(7):安全问题:
block_name尚未列入白名单。
怎么修
要解决此问题,您将必须手动将丢失的块名称添加到白名单。只添加您信任的块。如果您不知道该块从何而来,请首先找出该块。确定要添加丢失的块后,请在Magento管理面板中转到
System > Permissions > Blocks然后单击Add New Block按钮。在这里,您可以将缺失的块添加到白名单。只需block_name在该Block Name *字段的错误消息中输入显示的,将其设置Is Allowed为“是”,然后单击Save Block按钮即可。
不要忘记刷新缓存。现在允许您缺少块,并且错误应该消失了。