もう1つのパッチの日です。Magento1.xのSUPEE-7405がリリースされ、修正のリストは長いです:https ://magento.com/security/patches/supee-7405
最後のパッチを使用した後、もう一度質問する必要があります。パッチを適用するときに起こりうる問題は何ですか、また何を考慮する必要がありますか?
多くのXSSの問題が再び修正されたため、カスタムテーマに手動でパッチを適用する予定です。他に何か?後方互換性のない変更はありますか?
もう1つのパッチの日です。Magento1.xのSUPEE-7405がリリースされ、修正のリストは長いです:https ://magento.com/security/patches/supee-7405
最後のパッチを使用した後、もう一度質問する必要があります。パッチを適用するときに起こりうる問題は何ですか、また何を考慮する必要がありますか?
多くのXSSの問題が再び修正されたため、カスタムテーマに手動でパッチを適用する予定です。他に何か?後方互換性のない変更はありますか?
回答:
2016年2月23日更新:パッチはV1.1に更新され、この投稿にリストされているいくつかの重要な問題を修正します。リストは以下のとおりです。
パッチを掘り下げた後、私が見つけた関連する/興味深いものはここにあります(NB:このリストはCE 1.9.2.0-1.9.2.2のパッチを分析することによって作成されました。Magentoの古いバージョンに影響を与えるパッチにはおそらくもっとあります) :
[]
なくを使用すると、PHP <5.4array()
との後方互換性がなくなります(以下の既知の問題を参照)Mage_Admin_Model_Observer
Mage_Adminhtml_IndexController
Mage_Adminhtml_IndexController
getDeleteUrl
のMage_Checkout_Block_Cart_Item_Renderer
とで検証deleteAction
しますMage_Checkout_CartController
。controller_action_postdispatch_checkout_onepage_saveOrder
なりますcontroller_action_postdispatch_checkout_onepage_saveorder
))。これは、ローカルオブザーバーの構成には影響しません。詳細はこちら:https : //twitter.com/foomanNZ/status/689924329065164800Mage_Core_Model_File_Validator_Image
System => Configuration =>Advanced > System => Escape CSV Fields
admin_user_validate
下Mage_Admin_Model_User
Mage_Authorizenet_Helper_Admin
、成功注文のURLを取得するために使用される新しい管理ヘルパー()が含まれます。Zend_Xml_Security
。その目的は、潜在的なXXEおよびXEE攻撃についてXML文字列をスキャンすることです。しかし、他の変更されたファイルにはそれへの参照が見つかりませんでした。パッチ適用後の既知の問題:
このリストを可能な限り最新の状態に保つようにします。
新しい問題/質問を開始する前に、不足しているパッチから多くの問題が発生しているように見えるため、以前のパッチをすべて適用したことを確認してください。
もう1つは、コアファイルを変更した場合、パッチの適用が失敗する可能性があることです。あなたが持っている場合Hunk # failed at
:特定のファイルのエラーをして、あなたが以前のすべてのパッチを適用したことを確認している100%、ミラーを確認することで、あなたのMagentoのバージョンから元のファイルを持っていることを確認してくださいhttps://github.com / OpenMage / magento-mirror /
/index.php/api/v2_soap/index/?wsdl=1
が500エラーをスローします =>ここで見つけることができるこの修正を修正しました:https : //magento.stackexchange.com/a/98790/2380 /のバグレポートも作成しましたこれ:https ://www.magentocommerce.com/bug-tracking/issue/index/id/1265(クレジット:@ Moonman67)app/code/core/Mage/Core/Model/Config.php
(おそらくEEのみ):「SUPEE 7405のEnterprise Editionの致命的なエラー未定義のクラス定数AREA_ADMINHTMLMage_Core_Helper_Abstract::escapeHtml()
1.4.0.1で未定義のメソッド を呼び出す:Magento 1.4.0.1にパッチ7405をインストールした後のエラー_singleton/Mage_Core_Model_Domainpolicy
はMagento 1.7に既に存在します:セキュリティパッチSUPEE-7405エラー影響を受けるファイルのリスト
こちらのページにあります:https : //magento.stackexchange.com/a/98232/2380(credits @MagenX)
EEのみ
パッチ7616について:
Magentoパッチに関する優れたリソース
何か見逃した場合は、お気軽にお知らせください。
私が気づいた問題の1つは、サイトがPHP 5.4より前のバージョンを使用している場合、パッチに互換性がないことです。
Mage_Adminhtml_Helper_Sales
行番号124付近のクラス。コードは次のとおりです。
$links = [];
これを次のように拡張する必要がありました。
// Patch not compatible with PHP version 5.3: overwrote Magento patch update
$links = array();
私が遭遇した別のエラーは、設定したCookieに関係しているように見えました。ただし、Cookieをクリアすると、すべてのページが正常に読み込まれます。
エラーの例:
Notice: unserialize() [function.unserialize]: Error at offset 0 of 13 bytes in `/var/www/website/app/code/core/Mage/Core/Helper/Cookie.php` on line 83
他の誰かがこれらの問題に遭遇したかどうかはわかりませんが、それが役立つことを願っています!
Magento CEにSUPEE-7405をパッチしたときに見つかった問題を以下に示します。次の行を置き換えます。
chmod($destinationFile, 0777);
で:
chmod($destinationFile, 0640);
ファイル内 lib/Varien/File/Uploader.php
このファイルのアクセス許可は実際には644である必要があるため、バックエンドでの画像の表示が停止しました。これが640に設定されている理由はありますか?
chown USERNAME:nobody -R public_html
find ./public_html -type d -exec chmod g+s {} \;
Magento 1.7.0.0を申請する際、コメントを削除しようとしています app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
-/* @var $_helper Mage_Authorizenet_Helper_Data */
1.7.0.0- https: //raw.githubusercontent.com/OpenMage/magento-mirror/1.7.0.0/app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
1.7.0.1 https://raw.githubusercontent.com/OpenMage/magento-mirror/1.7.0.1/app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtmlまで追加されませんでした
これらのファイルにパッチを適用すると、考えられる影響を確認できます。
テンプレート:ほとんどがパッチされた管理テンプレート。
+++ app/design/frontend/base/default/template/rss/order/details.phtml
+++ app/design/frontend/base/default/template/catalog/product/view/options/type/file.phtml
+++ app/design/adminhtml/default/default/template/sales/order/view/info.phtml
+++ app/design/adminhtml/default/default/template/sales/order/totals/discount.phtml
+++ app/design/adminhtml/default/default/template/sales/items/renderer/default.phtml
+++ app/design/adminhtml/default/default/template/sales/items/column/name.phtml
+++ app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml
+++ app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml
+++ app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml
+++ app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
core / libs:
+++ lib/Varien/Io/File.php
+++ lib/Varien/File/Uploader.php
+++ app/code/core/Zend/Xml/Security.php
+++ app/code/core/Mage/Sales/Model/Quote/Item.php
+++ app/code/core/Mage/Sales/Model/Quote/Address.php
+++ app/code/core/Mage/Sales/Helper/Guest.php
+++ app/code/core/Mage/Rss/Helper/Order.php
+++ app/code/core/Mage/Rss/Block/Catalog/Salesrule.php
+++ app/code/core/Mage/Review/controllers/ProductController.php
+++ app/code/core/Mage/Paypal/controllers/PayflowadvancedController.php
+++ app/code/core/Mage/Paypal/controllers/PayflowController.php
+++ app/code/core/Mage/Newsletter/Model/Queue.php
+++ app/code/core/Mage/Newsletter/Model/Observer.php
+++ app/code/core/Mage/ImportExport/Model/Import/Entity/Abstract.php
+++ app/code/core/Mage/ImportExport/Model/Export/Adapter/Csv.php
+++ app/code/core/Mage/ImportExport/Model/Export/Adapter/Abstract.php
+++ app/code/core/Mage/Downloadable/controllers/CustomerController.php
+++ app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php
+++ app/code/core/Mage/Customer/controllers/AccountController.php
+++ app/code/core/Mage/Core/Model/Session.php
+++ app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/Email/Template/Filter.php
+++ app/code/core/Mage/Core/Model/Email/Queue.php
+++ app/code/core/Mage/Core/Model/Config.php
+++ app/code/core/Mage/Core/Model/App.php
+++ app/code/core/Mage/Core/Helper/Data.php
+++ app/code/core/Mage/Checkout/controllers/OnepageController.php
+++ app/code/core/Mage/Checkout/controllers/CartController.php
+++ app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php
+++ app/code/core/Mage/CatalogInventory/Helper/Minsaleqty.php
+++ app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php
+++ app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php
+++ app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Select.php
+++ app/code/core/Mage/Authorizenet/controllers/Adminhtml/Authorizenet/Directpost/PaymentController.php
+++ app/code/core/Mage/Authorizenet/Helper/Data.php
+++ app/code/core/Mage/Authorizenet/Helper/Admin.php
+++ app/code/core/Mage/Adminhtml/controllers/IndexController.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Image/Favicon.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Image.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php
+++ app/code/core/Mage/Adminhtml/Helper/Sales.php
+++ app/code/core/Mage/Adminhtml/Helper/Catalog/Product/Edit/Action/Attribute.php
+++ app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
+++ app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Tab/History.php
+++ app/code/core/Mage/Admin/Model/User.php
+++ app/code/core/Mage/Admin/Model/Resource/User.php
+++ app/code/core/Mage/Admin/Model/Redirectpolicy.php
+++ app/code/core/Mage/Admin/Model/Observer.php
================================================== ======================= psを まとめておくために、複数のmagentoインストールで多くのサーバーにパッチを適用するための「簡単な」マルチパッチを作成しました。 multipatch-7405.sh
これが私の基本的なテスト計画です。
Colin Mollenhourによって最近発見され修正された(?)セッションのドロップの問題に注意してください 。
https://gist.github.com/colinmollenhour/5066a3220881a9c0c2dd42fa1593cbff/revisions
パッチを適用する代わりにMagento EE 1.14.2.xからMagento EE 1.14.2.3に更新し、以前にサポートパッチSUPEE-5984も適用した場合、リリースに含まれていないため、再度適用する必要があります。
これは、破損したインデクサーを修正したパッチでした。EE1.14.2.0へのアップグレード後のインデックスエラー:テーブルcatalog_product_entity_tmp_indexerは存在しません
2016年2月23日の時点で、Magentoはこれらの問題の多くに対処するパッチのパッチをリリースしました:https : //magento.com/security/patches/supee-7405
SUPEE_7405_v1、次にSUPEE_7405_v1.1を順番に適用する必要があります。
クライアントの1つにパッチをインストールするたびに、次のチェックリストを使用します。
app/etc/applied.patches.list
ファイルで確認できます)私はそれで本当にすべてだと思います。パッチは、手間をかけずに迅速にインストールされるように設計されています。10回のうち9回は完全に正常にインストールされ、それ以外の場合はバックアップがあります。コアファイルをいじらない限り、すべて問題ありません。
app/etc/applied.patches.list
ここでMagento EEの影響を受けるファイル
> -e 2016-02-11 03:14:54 UTC | SUPEE-7405-EE-1-14-2-2 | EE_1.14.2.2 | v1 | 91465c744a824111902e2911fd63fd8cb6c32f05 | Tue Jan 19 14:27:03 2016 +0200 | e1fc3c59c9..91465c744a
patching file app/code/core/Enterprise/Checkout/Block/Adminhtml/Manage/Form/Coupon.php
patching file app/code/core/Enterprise/GoogleAnalyticsUniversal/Block/Ga.php
patching file app/code/core/Enterprise/PageCache/etc/config.xml
patching file app/code/core/Enterprise/Pbridge/etc/config.xml
patching file app/code/core/Enterprise/Pci/Model/Observer.php
patching file app/code/core/Enterprise/Pci/Model/Resource/Admin/User.php
patching file app/code/core/Enterprise/Pci/etc/config.xml
patching file app/code/core/Enterprise/Persistent/etc/config.xml
patching file app/code/core/Enterprise/SalesArchive/etc/config.xml
patching file app/code/core/Enterprise/WebsiteRestriction/etc/config.xml
patching file app/code/core/Mage/Admin/Model/Observer.php
patching file app/code/core/Mage/Admin/Model/Redirectpolicy.php
patching file app/code/core/Mage/Admin/Model/Resource/User.php
patching file app/code/core/Mage/Admin/Model/User.php
patching file app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Tab/History.php
patching file app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
patching file app/code/core/Mage/Adminhtml/Helper/Catalog/Product/Edit/Action/Attribute.php
patching file app/code/core/Mage/Adminhtml/Helper/Sales.php
patching file app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php
patching file app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Image.php
patching file app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Image/Favicon.php
patching file app/code/core/Mage/Adminhtml/controllers/IndexController.php
patching file app/code/core/Mage/Authorizenet/Helper/Admin.php
patching file app/code/core/Mage/Authorizenet/Helper/Data.php
patching file app/code/core/Mage/Authorizenet/controllers/Adminhtml/Authorizenet/Directpost/PaymentController.php
patching file app/code/core/Mage/Captcha/etc/config.xml
patching file app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Select.php
patching file app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php
patching file app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php
patching file app/code/core/Mage/CatalogIndex/etc/config.xml
patching file app/code/core/Mage/CatalogInventory/Helper/Minsaleqty.php
patching file app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php
patching file app/code/core/Mage/Checkout/controllers/CartController.php
patching file app/code/core/Mage/Checkout/controllers/OnepageController.php
patching file app/code/core/Mage/Core/Helper/Data.php
patching file app/code/core/Mage/Core/Model/App.php
patching file app/code/core/Mage/Core/Model/Config.php
patching file app/code/core/Mage/Core/Model/Email/Queue.php
patching file app/code/core/Mage/Core/Model/Email/Template/Filter.php
patching file app/code/core/Mage/Core/Model/File/Validator/Image.php
patching file app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php
patching file app/code/core/Mage/Core/Model/Session.php
patching file app/code/core/Mage/Customer/controllers/AccountController.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php
patching file app/code/core/Mage/Downloadable/controllers/CustomerController.php
patching file app/code/core/Mage/ImportExport/Model/Export/Adapter/Abstract.php
patching file app/code/core/Mage/ImportExport/Model/Export/Adapter/Csv.php
patching file app/code/core/Mage/ImportExport/Model/Import/Entity/Abstract.php
patching file app/code/core/Mage/ImportExport/etc/config.xml
patching file app/code/core/Mage/ImportExport/etc/system.xml
patching file app/code/core/Mage/Newsletter/Model/Observer.php
patching file app/code/core/Mage/Newsletter/Model/Queue.php
patching file app/code/core/Mage/Page/etc/system.xml
patching file app/code/core/Mage/Paypal/controllers/PayflowController.php
patching file app/code/core/Mage/Paypal/controllers/PayflowadvancedController.php
patching file app/code/core/Mage/Paypal/etc/config.xml
patching file app/code/core/Mage/Persistent/etc/config.xml
patching file app/code/core/Mage/Review/controllers/ProductController.php
patching file app/code/core/Mage/Rss/Block/Catalog/Salesrule.php
patching file app/code/core/Mage/Rss/Helper/Order.php
patching file app/code/core/Mage/Sales/Helper/Guest.php
patching file app/code/core/Mage/Sales/Model/Quote/Address.php
patching file app/code/core/Mage/Sales/Model/Quote/Item.php
patching file app/code/core/Zend/Xml/Security.php
patching file app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml
patching file app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml
patching file app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml
patching file app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml
patching file app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml
patching file app/design/adminhtml/default/default/template/enterprise/checkout/form/coupon.phtml
patching file app/design/adminhtml/default/default/template/sales/items/column/name.phtml
patching file app/design/adminhtml/default/default/template/sales/items/renderer/default.phtml
patching file app/design/adminhtml/default/default/template/sales/order/totals/discount.phtml
patching file app/design/adminhtml/default/default/template/sales/order/view/info.phtml
patching file app/design/frontend/base/default/template/catalog/product/view/options/type/file.phtml
patching file app/design/frontend/base/default/template/rss/order/details.phtml
patching file lib/Varien/File/Uploader.php
patching file lib/Varien/Io/File.php
Magento 1.14.1.0にSUPEE-7405を適用すると、エラーが発生しました。
Fatal error: Cannot redeclare Mage_Core_Controller_Varien_Router_Admin::_validateControllerInstance() in app/code/core/Mage/Core/Controller/Varien/Router/Admin.php on line 173
この問題は、次のメソッドで再宣言された_validateControllerInstanceが原因で発生しました。
app/code/core/Mage/Core/Controller/Varien/Router/Admin.php on line 173
2番目の(同じ)関数宣言を削除した後、問題は解決されました。
管理者にログインしようとすると、SUPEE-7405パッチをインストールした後に次のエラーが発生しました。
致命的エラー:
135行目の\ app \ code \ core \ Mage \ Admin \ Model \ Session.phpにある未定義のメソッドMage_Core_Controller_Response_Http :: sendHeadersAndExit()の呼び出し
このファイルはsendHeadersAndExit
、このパッチで作成されたメソッドを持たないローカルコードプールで上書きされたため
です。
\app\code\local\Mage\Core\Controller\Response\Http.php
次のメソッドは存在しません。(これはコアファイルに追加された新しいメソッドです)
/**
* Method send already collected headers and exit from script
*/
public function sendHeadersAndExit()
{
$this->sendHeaders();
exit;
}
オーバーライドされたファイルの問題にこれを追加すると、消えました。
SUPEE-7405を使用しているときに得た問題の1つは、イメージアップロードのバグです
したがって、このファイルの変更を確認します: lib / Varien / File / Uploader.php
diff --git lib / Varien / File / Uploader.php lib / Varien / File / Uploader.php --- --- -chmod($ destinationFile、0777); + chmod($ destinationFile、0640); --- --- -if(!(@ is_dir($ destinationFolder)|| @mkdir($ destinationFolder、0777、true))){ + if(!(@ is_dir($ destinationFolder)|| @mkdir($ destinationFolder、0750、true))){
次に、それを克服する2つの方法を見つけました。
オプション1:
ファイルlib / Varien / File / Uploader.phpを手動で変更して、0640/ 0750のアクセス許可を調整します。
オプション2: MagentoはWebサーバーがサイトファイルを所有することを想定しているため:
http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html#privs-after
問題を解決するもう1つの方法は、Webサーバーをファイルの所有者にすることです。
chown -R Webサーバーのユーザー名magento / root / path
Webサーバーのユーザー名は、通常www-dataまたはapacheです。