উত্তর:
এই বার্তাটির অর্থ হ'ল আপনার ম্যাগেন্টো স্টোরটিতে ব্যবহৃত একটি ব্লক শ্বেত তালিকাতে নেই।
সঙ্গে নিরাপত্তা প্যাচ SUPEE-6788 এবং Magento সিই 1.9.2.2 ব্লক জন্য একটি নতুন পরিচ্ছন্ন তালিকা চালু করা হয়। ম্যাজেন্টোতে এখন অনুমোদিত ব্লক বা নির্দেশকের একটি সাদা তালিকা রয়েছে। যদি কোনও মডিউল বা এক্সটেনশান সিএমএস পৃষ্ঠাগুলি বা ইমেলগুলিতে {{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/
এই বার্তাটি পেতে অবশ্যই আপনার অবশ্যই লগিং সক্ষম থাকতে হবে। এই ত্রুটি আপনি দেখতে পাবেন
ডিবগ (7): সুরক্ষা সমস্যা:
block_name
শ্বেত তালিকাভুক্ত করা হয়নি।
কিভাবে ঠিক করবো
এটি ঠিক করতে আপনাকে ম্যানুয়ালি হ'ল হোয়াইটলিস্টে হারিয়ে যাওয়া ব্লকের নাম যুক্ত করতে হবে। কেবলমাত্র আপনার বিশ্বাস থাকা ব্লকগুলি যুক্ত করুন। ব্লকটি কোথা থেকে আসছে তা আপনি যদি জানেন না তবে প্রথমে এটি সন্ধান করুন। একবার আপনি নিশ্চিত হয়ে গেছেন যে আপনি অনুপস্থিত ব্লকটি যুক্ত করতে চান, তারপরে আপনার ম্যাজেন্টো অ্যাডমিন প্যানেলে যান
System > Permissions > Blocks
এবং Add New Block
বোতামে ক্লিক করুন । এখান থেকে আপনি হোয়াইটলিস্টে অনুপস্থিত ব্লক যুক্ত করতে পারেন। প্রবেশ block_name
যে আপনার ত্রুটি বার্তা মধ্যে দেখিয়েছেন Block Name *
ক্ষেত্র সেট, Is Allowed
"হ্যাঁ" এবং আঘাত Save Block
বোতাম।
ক্যাশে ফ্লাশ করতে ভুলবেন না আপনার অনুপস্থিত ব্লকটি এখন অনুমোদিত এবং ত্রুটিটি চলে যাওয়া উচিত।