SUPEE-6285 প্যাচ, কী পরিবর্তন করা হয়েছে?


26

ঠিক আছে, কারও কাছে এটি জিজ্ঞাসা করতে হবে: আজ, 7/7/2015 ম্যাজেন্টো <1.9.2 এর জন্য একটি নতুন সুরক্ষা প্যাচ প্রকাশিত হয়েছে।

ASAP আপনার দোকান আপডেট করুন!

তবে কী পরিবর্তন হয়েছে? আচ্ছাদিত সুরক্ষা সমস্যাগুলির কি জানা আছে? সবচেয়ে খারাপ যে ঘটতে পারে?

এবং এমন কিছু আছে যা ভেঙে যেতে পারে? SUPEE-5994 এর মতো যেখানে ডাউনলোডার ডিরেক্টরিটি অনুপস্থিত থাকলে প্যাচ প্রয়োগ করা সম্ভব ছিল না ...


4
অনেক. একা প্যাচ ফাইলটি প্রায় 350 সংযোজন এবং 100 সরানোর সাথে 1,100 লাইনের বেশি। ম্যানুয়াল টেমপ্লেট সম্পাদনাগুলি আপনার প্যাকেজ /
থিমটিতে

5
এখানে একটি ভাল নিবন্ধ ব্লগ.ফিলভিঙ্কল.com
স্টিভ রবিন্স

উত্তর:


36

: ইতিমধ্যেই উল্লেখ করা হয়েছে, তালি দুর্বলতা সরকারিভাবে এই পৃষ্ঠা (নতুন বণিক দস্তাবেজ) উপর বিস্তারিতভাবে বর্ণনা করা হয় http://merch.docs.magento.com/ce/user_guide/Magento_Community_Edition_User_Guide.html#magento/patch-releases-2015.html

সারাংশ

এই বান্ডিলটিতে নিম্নলিখিত সুরক্ষা-সম্পর্কিত সমস্যাগুলির বিরুদ্ধে সুরক্ষা রয়েছে:

  • আরএসএস এবং প্রিভিলেজ বর্ধনের মাধ্যমে গ্রাহক তথ্য ফাঁস
  • ম্যাজেন্টো কানেক্টে জালিয়াতির অনুরোধ কোড সম্পাদনকে নেতৃত্ব দেয়
  • ইচ্ছার তালিকায় ক্রস-সাইট স্ক্রিপ্টিং
  • কার্টে ক্রস-সাইট স্ক্রিপ্টিং
  • স্টোর পাথ ডিসক্লোজার
  • লগ ফাইলগুলিতে খুব ব্রডের অনুমতি রয়েছে
  • প্রশাসনে ক্রস-সাইট স্ক্রিপ্টিং ting
  • অর্ডার আরএসএসে ক্রস-সাইট স্ক্রিপ্টিং

কয়েকটি দোকান প্যাচ করার পরে, আমি এটি সংগ্রহ করেছি:

থিম প্যাচগুলি

কিছু থিম ফাইলগুলি সম্ভাব্য এক্সএসএস আক্রমণগুলি রোধ করতে যোগ করা পলায়নের সাথে প্যাচ করা হয়েছে:

  • checkout/cart.phtml
  • checkout/cart/noItems.phtml
  • checkout/onepage/failure.phtml
  • rss/order/details.phtml
  • wishlist/email/rss.phtml

যদি আপনার থিম (গুলি) এর মধ্যে এই টেমপ্লেটগুলির কোনও রয়েছে বা আপনি যদি সরাসরি পরিবর্তন করে থাকেন base/default(সৌভাগ্য, আপনি ক্ষতিগ্রস্থ হন) তবে আপনাকে সেগুলি ম্যানুয়ালি প্যাচ করা দরকার:

  1. চেকআউট টেম্পলেটগুলিতে, সমস্ত উপস্থিতি প্রতিস্থাপন করুন

    $this->getContinueShoppingUrl()

    সঙ্গে

    Mage::helper('core')->quoteEscape($this->getContinueShoppingUrl())
  2. মধ্যে wishlist/email/rss.phtml, প্রতিস্থাপন

    $this->helper('wishlist')->getCustomerName()

    সঙ্গে

    Mage::helper('core')->escapeHtml($this->helper('wishlist')->getCustomerName())
  3. ইন rss/order/details.phtml, প্রতিস্থাপন

    <?php echo $this->__('Customer Name: %s', $_order->getCustomerFirstname()?$_order->getCustomerName():$_order->getBillingAddress()->getName()) ?><br />
    <?php echo $this->__('Purchased From: %s', $_order->getStore()->getGroup()->getName()) ?><br />

    সঙ্গে

    <?php $customerName = $_order->getCustomerFirstname() ? $_order->getCustomerName() : $_order->getBillingAddress()->getName(); ?>
    <?php echo $this->__('Customer Name: %s', Mage::helper('core')->escapeHtml($customerName)) ?><br />
    <?php echo $this->__('Purchased From: %s', Mage::helper('core')->escapeHtml($_order->getStore()->getGroup()->getName())) ?><br />

অনুমতিসমূহ

.htaccessফাইল যোগ করা হয়েছে downloader/Magedএবং downloader/libসোর্স ফাইল অননুমোদিত সরাসরি প্রবেশাধিকার রয়েছে। আপনি যদি এনজিনেক্স ব্যবহার করেন তবে একইটি অর্জনের জন্য আপনাকে এই নিয়মগুলি যুক্ত করতে হবে (এর জন্য বেন লেসানির কাছে থেক্স ):

location /downloader/Maged/ { deny all; }
location /downloader/lib/   { deny all; }

তবে আমি downloaderযাইহোক যাইহোক একটি লাইভ সিস্টেম সিস্টেমে মোতায়েন থেকে বাদ দেওয়ার পরামর্শ দিই , এই ক্ষেত্রে আপনাকে পদক্ষেপ নেওয়ার দরকার নেই।

প্রশাসন অধিকার (এসিএল)

যদি আপনি সীমাবদ্ধ প্রশাসক অ্যাকাউন্টগুলি ব্যবহার করেন, তৃতীয় পক্ষের এক্সটেনশনের কিছু মেনু তাদের জন্য আর কাজ না করে। কারণটি হ'ল ডিফল্ট ফিরতি মানটি Mage_Adminhtml_Controller_Action::_isAllowed()থেকে পরিবর্তিত trueহয়েছে Mage::getSingleton('admin/session')->isAllowed('admin')। যেসব এক্সটেনশানগুলি তাদের প্রশাসক কন্ট্রোলারে এই পদ্ধতিটি ওভাররাইড করে না কারণ তারা এসিএল ব্যবহার করে না, এখন তাদের "সমস্ত" অধিকার প্রয়োজন।

একমাত্র সমাধান হ'ল এক্সটেনশানগুলিকে প্যাচ দেওয়া এবং এই পদ্ধতিটি তাদের সমস্ত প্রশাসক কন্ট্রোলারে যুক্ত করুন:

protected function _isAllowed()
{
    return true;
}

বা যদি তাদের আসলে একটি এসিএল সংস্থান সংজ্ঞায়িত থাকে etc/adminhtml.xml:

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}

(আপনি দেখতে পাচ্ছেন যে প্যাচটি Phoenix_Moneybookersপুরানো ম্যাজেন্টো সংস্করণগুলিতে 1.7 এর মতো যেখানে এই এক্সটেনশানটি অন্তর্ভুক্ত ছিল একই রকম হয় )

এই ইস্যুটির আরও বিশদ দৃষ্টিভঙ্গি এবং কীভাবে এসিএল নিখোঁজ সংস্থানগুলি সংজ্ঞায়িত করা যায় তার বিশদ জন্য দেখুন: এসইপিইই -6285 ইনস্টল করার পরে অস্বীকৃত ত্রুটিগুলি অ্যাক্সেস করুন

প্যাচ প্রয়োগ করার সময় সম্ভাব্য ত্রুটি

  1. বার্তা:

    can't find file to patch at input line 899
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git app/design/frontend/default/modern/template/checkout/cart.phtml app/design/frontend/default/modern/template/checkout/cart.phtml
    |index 982ad5a..2bf6b37 100644
    |--- app/design/frontend/default/modern/template/checkout/cart.phtml
    |+++ app/design/frontend/default/modern/template/checkout/cart.phtml
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    1 out of 1 hunk ignored

    কারণ:default/modern থিম ইনস্টলেশন থেকে অপসারণ করা হয়েছে

    সমাধান:app/design/frontend/default/modern একটি নতুন ম্যাজেন্টো ডাউনলোড থেকে যুক্ত করুন (আপনার দোকানের মতোই সংস্করণ হওয়া উচিত)। আপনি এই আয়নাটিও ব্যবহার করতে পারেন: https://github.com/firegento/magento । তারপরে প্যাচটি সফলভাবে প্রয়োগের পরে আপনি আবার থিমটি সরিয়ে ফেলতে পারেন।

  2. বার্তা

    patching file downloader/Maged/.htaccess
    can't find file to patch at input line 915
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git downloader/Maged/Controller.php downloader/Maged/Controller.php
    |index aa9d705..32755d7 100644
    |--- downloader/Maged/Controller.php
    |+++ downloader/Maged/Controller.php
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    5 out of 5 hunks ignored
    can't find file to patch at input line 976
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git downloader/Maged/Model/Session.php downloader/Maged/Model/Session.php
    |index 18020eb..7013c94 100644
    |--- downloader/Maged/Model/Session.php
    |+++ downloader/Maged/Model/Session.php
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    2 out of 2 hunks ignored
    patching file downloader/lib/.htaccess
    can't find file to patch at input line 1020
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git downloader/template/connect/packages.phtml downloader/template/connect/packages.phtml
    |index 9cca5a6..f42e74e 100644
    |--- downloader/template/connect/packages.phtml
    |+++ downloader/template/connect/packages.phtml
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    3 out of 3 hunks ignored
    can't find file to patch at input line 1049
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git downloader/template/connect/packages_prepare.phtml downloader/template/connect/packages_prepare.phtml
    |index f74c3df..86aa51b 100644
    |--- downloader/template/connect/packages_prepare.phtml
    |+++ downloader/template/connect/packages_prepare.phtml
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    1 out of 1 hunk ignored
    can't find file to patch at input line 1061
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git downloader/template/login.phtml downloader/template/login.phtml
    |index 6e4cd2c..dbbeda8 100644
    |--- downloader/template/login.phtml
    |+++ downloader/template/login.phtml
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    1 out of 1 hunk ignored
    can't find file to patch at input line 1073
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff --git downloader/template/settings.phtml downloader/template/settings.phtml
    |index 13551ac..47ab411 100644
    |--- downloader/template/settings.phtml
    |+++ downloader/template/settings.phtml
    --------------------------
    File to patch:
    Skip this patch? [y]
    Skipping patch.
    1 out of 1 hunk ignored

    কারণ:downloader ডিরেক্টরির ইনস্টলেশন থেকে অপসারণ করা হয়েছে

    সমাধান:downloader একটি নতুন ম্যাজেন্টো ডাউনলোড থেকে যুক্ত করুন (আপনার দোকানের মতোই সংস্করণ হওয়া উচিত)। আপনি এই আয়নাটিও ব্যবহার করতে পারেন: https://github.com/firegento/magento । তারপরে প্যাচটি সফলভাবে প্রয়োগের পরে আপনি আবার ডিরেক্টরিটি সরিয়ে ফেলতে পারেন।

  3. বার্তা: অনুরূপ কিছু

    checking file app/design/frontend/base/default/template/checkout/cart.phtml
    Hunk #1 FAILED at 97 (different line endings).
    1 out of 1 hunk FAILED
    checking file app/design/frontend/base/default/template/checkout/cart/noItems.phtml
    Hunk #1 FAILED at 31 (different line endings).
    1 out of 1 hunk FAILED
    checking file app/design/frontend/base/default/template/checkout/onepage/failure.phtml
    Hunk #1 FAILED at 29 (different line endings).
    1 out of 1 hunk FAILED
    checking file app/design/frontend/base/default/template/rss/order/details.phtml
    Hunk #1 FAILED at 31 (different line endings).
    1 out of 1 hunk FAILED
    checking file app/design/frontend/base/default/template/wishlist/email/rss.phtml
    Hunk #1 FAILED at 25 (different line endings).
    1 out of 1 hunk FAILED

    কারণ: ফাইলগুলি \r\n(সিআরএলএফ, উইন্ডোজ লাইন ব্রেক) বা \r(সিআরএফ, ম্যাক লাইন ব্রেক) এর পরিবর্তে \n(এলএফ, ইউনিক্স লাইন ব্রেক) সঞ্চিত রয়েছে ।

    সমাধান: কেবল লাইন ব্রেকগুলিতে রূপান্তর করুন, আপনার পাঠ্য সম্পাদক বা আইডিই এর পক্ষে সক্ষম হওয়া উচিত।


যেহেতু এটি একটি বড় প্যাচ বলে মনে হচ্ছে, আপনি কি সম্মত হন যে 1.9.x চলমান দোকানগুলি এখন এই প্যাচটি অন্তর্ভুক্ত করে 1.9.2.0 এ আপগ্রেড করা ভাল হবে?
paj

1
আমি এখনও কোনও দোকান 1.9.2.0 এ আপডেট করি নি তবে মনে হয় কিছু অতিরিক্ত সমস্যা রয়েছে এবং আপডেটগুলি যাইহোক আরও যত্ন সহকারে পরীক্ষা করা উচিত। আমি এখনও প্যাচটি প্রথমে ইনস্টল করার পরামর্শ দেব।
ফ্যাবিয়ান শেমংলার

আমাদের দলে আমরা কেবল আমাদের ব্যবহারের জন্য একটি এক্সটেনশান তৈরি করেছি এবং এই প্যাচের পরে আমি বুঝতে পেরেছিলাম যে অ্যাডমিন কন্ট্রোলারদের মধ্যে কিছু _isAllowedপদ্ধতি প্রয়োগ করছে না । ভাগ্যক্রমে আমাদের মডিউলে এসিএল ছিল এবং পদ্ধতিটি যুক্ত করা ছাড়া কোনও অতিরিক্ত পদক্ষেপের প্রয়োজন ছিল না। এছাড়াও, আমি যে default/modernথিমটি স্থানান্তরিত হয়েছিল তা দিয়ে প্রথম ত্রুটি বার্তার মুখোমুখি হয়েছি (আমি গিটকে অপরাধীকে ধন্যবাদও পেয়েছি)। এটির জন্য +1
ভিক

এখানে কিছু দুর্দান্ত জিনিস। আমি যখন আমার কার্ট.এফটিএমএল আপডেট করতে গিয়েছিলাম তখন আমি আমার সংস্করণটিকে বেসের সাথে তুলনা করেছি এবং লক্ষ্য করেছি যে আপনার সম্পাদনাটি কিছুটা ভুল বলে মনে হচ্ছে। প্যাচ ফাইলটি থেকে নতুন লাইনটি হ'ল: <বোতামের প্রকার = "বোতাম" শিরোনাম = "<? পিএইচপি প্রতিধ্বনি :: সহায়তাকারী ('কোর') -> উদ্ধৃতিপ্রদর্শন ($ এটি -> __ ('শপিং চালিয়ে যান'))?> "শ্রেণি =" বোতাম বিটিএন-চালিয়ে যান "অনক্লিক =" সেটলোকেশন ('<? পিএইচপি ইকো ম্যাজ :: সহায়ক (' কোর ') -> উদ্ধৃতিপ্রদর্শন ($ এই-> getContinueShoppingUrl ())?>') "> <span> < স্প্যান> <? পিএইচপি প্রতিধ্বনি $ এটি -> __ ('কেনাকাটা চালিয়ে যান')?> </span> </span> </bton>। আপনি কি স্পষ্ট করতে পারেন?
পেড্রোকটিএফসিএফ

7

@ Http://blog.philwinkle.com/supee-6285-broken-down/ এর মাধ্যমে

সাধারণত এটিতে _is অনুমোদিত অনুমোদিত সুরক্ষিত পদ্ধতি যুক্ত থাকে যা একটি বুলিয়ান দেয়। অ্যাডমিনিস্টটিএমএল / নিয়ন্ত্রক / ক্যাটালগ / বিভাগ / উইজেটকন্ট্রোলারের আপডেট হিসাবে এই বুলিয়ানটি একটি এসিএল চেকের ফলাফল। অ্যাডমিনিস্টটিএমএল / কন্ট্রোলার / অ্যাজাক্সন্ট্রোলআরএফপি-এর মতো কখনও কখনও এটি সত্য-তেও কোডড হয় is

আমি যুক্ত করার পরে:

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('system/config');
}

তৃতীয় পক্ষের কন্ট্রোলারের একটিতে প্রশাসনিক বিভাগটি আবার "কাজ" শুরু করে ...

সুতরাং আমরা শীঘ্রই অন্য একটি ম্যাজেন্টো প্যাচ পাবেন? এটি একটি বড় সমস্যা বলে মনে হচ্ছে ...


আমার উত্তর দেখুন। "ড্যাশবোর্ড" সুবিধাবোধিত নিষেধাজ্ঞাগুলি প্রদানের ফলে নিজের এসিএল রিসোর্স ছাড়াই তৃতীয় পক্ষের বিভাগগুলিতে অ্যাক্সেসের অনুমতি দেওয়া হবে।
ফ্যাবিয়ান শেমংলার

ম্যাজেন্টো 1.8 : যাচাই করেছে (সেই অধিকারটির "চালু" ছিল) - একই গল্প: অ্যাক্সেস অস্বীকৃত । হ্যাঁ আমি প্রথমে লগ আউট করেছি এবং লগইন করার পরে লগইন করেছি :)
পাইটর সিয়েজুকুক

দুঃখিত, আমি "অ্যাডমিন" এর জন্য কনফিগারেশনটির ভুল ব্যাখ্যা দিয়েছি, এটি প্রকৃতপক্ষে সমস্ত প্রিভিলিজেস ব্যবহারকারীদের ক্ষেত্রেই সত্য। এটি সত্য যে অনেকগুলি এক্সটেনশনের প্যাচ করা দরকার। সেই অনুসারে আমার উত্তর আপডেট করুন।
ফ্যাবিয়ান শেমঙ্গলার

এটি বা আমি যেমন লিখেছি @ magento.stackexchange.com/questions/73646/… Mage_Adminhtml_Controller_Action :: _ isAmitteded () <pre> সুরক্ষিত ফাংশন _আইসোভেলড () {রিটার্ন Mage :: এর জন্য আমাদের অ্যাপ্লিকেশন / কোড / স্থানীয় ভাষায় সাধারণ ওভাররাইড লিখতে হবে getSingleton ( 'অ্যাডমিন / অধিবেশন') -> isAllowed ( 'সিস্টেম / কনফিগ'); } </
translation

1
যদি ডিফল্ট অনুমতি হিসাবে "সিস্টেম / কনফিগারেশন" আপনার পক্ষে কাজ করে .. তবে আমার অনুমান বণিকের উপর নির্ভর করে
ফ্যাবিয়ান শেমংলার

3

আপনার যদি অনেক সম্প্রদায় / স্থানীয় এক্সটেনশন থাকে তবে আপনি এসইপিইই-6285 এর পরিবর্তনের দিকে বিশেষ মনোযোগ দিতে চান যা app/code/core/Mage/Adminhtml/Controller/Action.phpআপনার প্যাচ সংস্করণের উপর নির্ভর করে depending line6 লাইনের উপরে রয়েছে (এটি EE 1.14.0.1 প্যাচফাইল):

protected function _isAllowed()
    {
-        return true;
+        return Mage::getSingleton('admin/session')->isAllowed('admin');
    }

সমস্ত কাস্টম মডিউল যা তাদের নিজস্ব অ্যাডমিন রিসোর্স বাস্তবায়িত করে না উপরের পরিবর্তন দ্বারা প্রভাবিত হয় এবং প্রশ্নে প্রশাসক ব্যবহারকারীর পূর্ণ প্রশাসকের অধিকার না থাকলে অ্যাক্সেস অস্বীকার করা হবে।

আপনি যদি প্যাচের অন্য কোথাও সন্ধান করেন তবে দেখবেন যে অন্তর্ভুক্ত মূল মডিউলগুলি অনেকগুলি আপডেট হয়েছে তবে এটি তৃতীয় পক্ষের মডিউলগুলিকে প্রচুর পরিমাণে প্রভাবিত করতে পারে তাই আপনার সাইটের পোস্ট প্যাচে কোনও তৃতীয় পক্ষের এক্সটেনশনগুলি পরীক্ষা করার জন্য বিশেষ মনোযোগ দিন আপনি এখনও তাদের অ্যাক্সেস করতে পারেন!


1

দেখে মনে হচ্ছে প্যাচ রিলিজ পৃষ্ঠাটি কী প্রভাবিত করে সে সম্পর্কে তথ্য দিয়ে আপডেট করা হয়েছে।

আমি এখনও একটি প্রোডাকশন সাইট এবং পরীক্ষা ইনস্টল করা আছে


3
আমি এটি ডেভ সার্ভারে ইনস্টল করেছি এবং এটি দুর্দান্ত কাজ করেছে, তাই এটিকে উত্পাদনের দিকে ঠেলে দিয়েছে। আমাদের কিছু পণ্য ও বিক্রয় অ্যাডমিনরা ম্যাজেন্টো অ্যাডমিন ব্যবহারের চেষ্টা না করা পর্যন্ত সবকিছু ঠিকঠাক কাজ করেছিল বলে মনে হয়েছিল - এই ব্যবহারকারীরা ম্যাজেন্টোতে 'ব্যবহারকারী রোল এডিটর' এর মাধ্যমে ভূমিকা অনুমতিগুলি সীমাবদ্ধ রেখেছেন, তারা প্রশাসনিক অঞ্চল ওয়েবসাইটের কিছু অংশে অ্যাক্সেস অস্বীকৃত ত্রুটিগুলি নিয়ে প্রায়শই ত্যাগ করেছিলেন were যা তৃতীয় পক্ষের প্লাগইন ব্যবহার করে। আমার প্রধান অ্যাডমিন অ্যাকাউন্টটি এখনও এই সমস্তটির জন্য সূক্ষ্মভাবে কাজ করে ... আমি এখনও এটি সন্ধান করছি
রিকি ওডিন ম্যাথিউজ

0

প্যাচ প্রয়োগের পরে পরিবর্তিত ফাইলগুলির সম্পূর্ণ তালিকা পাওয়া যায় app/etc/applied.patches.list


0

তৃতীয় পক্ষের মডিউলগুলির ক্ষেত্রে আমার ক্ষেত্রে অ্যাডমিনটিচটিএমএল নিয়ন্ত্রণকারীদের কোড নীচে যুক্ত করে কাজ করেছে:

protected function _isAllowed()

{
     return true;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.