DEBUG (7): सुरक्षा समस्या: block_name श्वेतसूचीबद्ध नहीं किया गया है। (Magento system.log)


22

system.logमेरे Magento इंस्टाल की फाइल में मेरे पास निम्न त्रुटि संदेश है

DEBUG (7): सुरक्षा समस्या: block_nameश्वेतसूचीबद्ध नहीं की गई है।

block_nameमेरे स्टोर में उपयोग किए गए ब्लॉक का नाम कहां है।

इसका क्या मतलब है और मैं इसे कैसे ठीक करूं?

जवाबों:


28

इस संदेश का अर्थ है कि आपके Magento स्टोर में उपयोग किए जाने वाले ब्लॉक में से एक श्वेतसूची पर नहीं है।

साथ सुरक्षा पैच Supee-6788 और Magento सीई 1.9.2.2 ब्लॉक के लिए एक नई श्वेत सूची पेश किया गया था। Magento में अब अनुमत ब्लॉकों या निर्देशों की एक सफेद सूची शामिल है। यदि कोई मॉड्यूल या एक्सटेंशन CMS पृष्ठों या ईमेल में {{config path=”web/unsecure/base_url”}}और जैसे चर का उपयोग करता है {{block type=rss/order_new}}, और निर्देश इस सूची में नहीं हैं, तो आपको उन्हें अपने डेटाबेस के साथ जोड़ना होगा। यदि कोई ब्लॉक श्वेतसूची पर नहीं है, तो उसका प्रतिपादन नहीं किया जाएगा।

त्रुटि

के रूप में सुरक्षा पैच Supee-7405 और Magento सीई 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/

बेशक आप इस संदेश को पाने के लिए लॉगिंग सक्षम होना चाहिए। यह वह त्रुटि है जो आप देखेंगे

DEBUG (7): सुरक्षा समस्या: block_nameश्वेतसूचीबद्ध नहीं की गई है।

कैसे ठीक करना है

इसे ठीक करने के लिए आपको लापता ब्लॉक नाम को श्वेतसूची में मैन्युअल रूप से जोड़ना होगा। केवल उन ब्लॉकों को जोड़ें जिन पर आप भरोसा करते हैं। यदि आपको नहीं पता है कि ब्लॉक कहां से आ रहा है, तो इसे पहले पता करें। एक बार जब आप सुनिश्चित हो जाते हैं कि आप लापता ब्लॉक को जोड़ना चाहते हैं, तो अपने Magento के व्यवस्थापक पैनल में जाएँ

System > Permissions > Blocks

और Add New Blockबटन पर क्लिक करें। यहां से आप लापता ब्लॉक को वाइटेलिस्ट में जोड़ सकते हैं। बस block_nameउस Block Name *फ़ील्ड में अपनी त्रुटि संदेश में दिखाया गया है , Is Allowed"हाँ" पर सेट करें और Save Blockबटन दबाएं।

कैश फ्लश करने के लिए मत भूलना। आपका लापता ब्लॉक अब अनुमत है और त्रुटि दूर होनी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.