जवाबों:
इस संदेश का अर्थ है कि आपके 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
बटन दबाएं।
कैश फ्लश करने के लिए मत भूलना। आपका लापता ब्लॉक अब अनुमत है और त्रुटि दूर होनी चाहिए।