セキュリティパッチSUPEE-8788-考えられる問題?



Security Patch Supee 8788 Possible Problems



解決:

重要な注意事項

その点に注意してください 1.9.3は1.9.2.4 + SUPEE-8788とは異なります。 2つの違いは次のとおりです:https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

10月14日更新:パッチのv2がリリースされました(以下を参照)。10月13日の時点で、1.5.xから1.8.xのパッチは、以前のパッチとの非互換性のためにMagento Webサイトから削除されました(以下を参照)。



https://community.magento.com/t5/Security-Patches/SUPEE-8788-AND-SUPEE-1533-Incompatible-Hunk-error/td-p/50434/highlight/false/page/2

パッチのV3

この新しいバージョンは Magento EE1.13.0.xのみ



V3を適用します。

  • SUPEE 1533を元に戻す(インストールされている場合)
  • SUPEE 3941をインストールします(インストールされていない場合)
  • SUPEE 8788v3をインストールします

パッチのV2

V2を適用します。

  • SUPEE 8788v1を元に戻す
  • SUPEE 1533を元に戻す(インストールされている場合)
  • SUPEE 3941をインストールします(インストールされていない場合)
  • SUPEE 8788v2をインストールします

DemacMediaは、上記のプロセスを自動化するための便利なbashスクリプトを開発しました。https://github.com/DemacMedia/magento-SUPEE8788-patcher



パッチの詳細

パッチを掘り下げた後、ここに興味深い部分があります(1.9.2.4からのパッチ):

  • Mage_Adminhtml_Block_Media_Uploaderはに置き換えられましたMage_Uploader_Block_Multipleなので、いっぱいになりますFlashサポートを削除するMage_Uploaderモジュール 。古いブロックは非推奨になり、新しいブロックを拡張します。
  • まだアップローダーに関しては、 NSMage_Downloadableモジュールは、新しい非フラッシュアップローダーを処理するようにリファクタリングされました。 それは使用していますテンプレートを使用する代わりに、アップロードブロックとしてMage_Uploader_Block_Single。
  • この変更に続いて、t SWFファイルskin / adminhtml / default / default / media / flex.swf、skin / adminhtml / default / default / media /uploader.swfおよびskin / adminhtml / default / default / media /uploaderSingle.swfが削除されました。
  • アドレス削除コントローラーがフォームキーで保護されるようになりました 直接経由getDeleteUrl fromMage_Customer_Block_Address_Book
  • ウィッシュリストアイテム削除コントローラーがフォームキーで保護されるようになりました 経由getRemoveUrl fromMage_Wishlist_Helper_Data
  • Paypal Expressの支払い方法により、新しいユーザーをチェックアウトおよび登録するときに、使用される顧客の電子メールがMagentoに存在することが保証されるようになりました。 (理解:新しい見積もりが処理される前に新しいユーザーが作成されます)
  • cURL / HTTPクライアントを使用した支払い方法にCURLOPT_SSL_VERIFYHOSTが2に設定され(以前は0でした)、CURLOPT_SSL_VERIFYPEERフラグがcURL呼び出しに追加されました。 [ピアの確認]フラグは、[SSL確認を有効にする]ドロップダウンの支払い方法の構成で有効/無効にできます。
  • Mage_Http_Client_CurlにCURLOPT_SSL_VERIFYPEERがtrueに設定されました(以前はfalseでした) 、それを使用するカスタムモジュールがある場合は注意してください。
  • 製品写真の最大寸法は、構成で構成できるようになりました。注意:大きすぎる画像をアップロードすると、面白いエラーメッセージが表示される可能性があります:パッチアップロード後のMagento1.9.2.2で許可されていないファイル形式

既知のSUPEE-8788v2の問題

  • Magento 1.9.2.0 SUPEE-8788 v2ハンク#1は、SUPEE-1533を元に戻した後、91で失敗しました
  • パッチはPayPalExpressモデルに適用できません:Magento 1.9.2.2 SUPEE-8788 v2ハンク#1が失敗しました
  • パッチ関連ではない一致が1.8で送信を停止しました:https://magento.stackexchange.com/q/141799/2380およびセキュリティパッチ8788V2の問題
  • を呼び出すときの後方互換性のない変更アップローダーブロックのgetConfig()メソッド:SUPEEパッチ8788のインストール後の管理パネルでの問題

既知のSUPEE-8788v1の問題

  • 更新:パッチのv2はその問題を修正します(上記を参照) SUPEE-1533とSUPEE-8788の競合 、可能な(ハッキーな)回避策はここにあります。ここでハッキーな解決策
  • 更新:パッチのv2はその問題を修正します サポートされていないデータ型Nエラー1.9.1.0の/lib/Unserialize/Reader/ArrValue.phpと、パッチが適用されている場合はそれ以前のバージョン。ここで修正:https://gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
  • 更新:SUPEE-3941との競合の可能性を発行するパッチ修正のv2:https://magento.stackexchange.com/a/140696/2380
  • OS Xの問題:不正なバイトシーケンス :OSX上のSUPEE-8788-不正なバイトシーケンス
  • 不正な形式のパッチ(おそらくパッチのバイナリシーケンスが原因) :Magento1.9.2.4パッチSUPEE-8788行5790の不正な形式のパッチ
  • の包含EEパッチ付きのtest_oauth.phpファイル 、そのファイルを製品にプッシュしないでください
  • 関連するEEでのログインの問題の可能性Enterprise_Pci :https://magento.stackexchange.com/a/140577/2380
  • カプセル化されたバイナリファイルが含まれているため、パッチファイルを編集すると問題が発生します 、編集する必要がある場合は、この方法を使用してください:https://magento.stackexchange.com/a/140575/2380
  • 万一に備えて あなたはアプリ/コード/ローカルバージョンのMage / Core /functions.php新しい問題が発生しますhash_equals関数 :https://magento.stackexchange.com/a/140664/2380
  • それを知って良かった 1.8より前のMagentoのform_keyに関して、いくつかのテンプレートの変更が含まれています
  • 1.5.1.0で発生する可能性のある問題downloader / Maged / View.php:downloader / Maged / View.php(M1 v1.5.1.0)でセキュリティパッチSUPEE-8788が失敗する
  • を削除/名前変更した場合ダウンローダーフォルダー:https://magento.stackexchange.com/a/140631/2380

既知の1.9.3.0の問題

編集:リストが長くなり、この回答ではトピックからかなり外れているため(SUPEE-8788に関連していないため)、既知の1.9.3.0の問題のリストについてはこの投稿を参照できます:https://magento.stackexchange。 com / a / 140826/2380


パッチを適用すると、このエラーが発生する可能性があります。

チェックファイルskin / adminhtml / default / default / media /flex.swfチェックファイルskin / adminhtml / default / default / media /uploader.swfチェックファイルskin / adminhtml / default / default / media / uploaderSingle.swf反転(または以前に適用) )パッチが検出されました! -Rと仮定しますか? [n]とにかく適用しますか? [n]パッチをスキップします。 1つのハンクのうち1つは、ファイルskin / adminhtml / default / default / xmlconnect /boxes.cssのチェックを無視しました

8788パッチにはバイナリコンテンツが含まれています。 Magentoは直接ダウンロードリンクを提供しないため(それ以来、このポリシーは嫌いです)、パッチをコンピューターにダウンロードし、ファイル転送アプリケーション(WindowsのWinSCPなど)を使用してサーバーにアップロードする必要があります。たとえば、WinSCPはTEXTモードでアップロードします(WinSCPはデフォルトで* .shファイルをテキストとして処理します)。

したがって、これに対する回避策は、パッチファイルをzip / tarし、サーバー上で再度unzip / untarすることです。 etvoila。


申し訳ありませんが、これに答える方法がありませんでした

  1. 正しいMagentoバージョンをダウンロードします(例:CE 1.9.1.0)
  2. 次のファイルをダウンロードした場所に置き換えます

skin / adminhtml / default / default / media / flex.swf skin / adminhtml / default / default / media / uploader.swf skin / adminhtml / default / default / media / uploaderSingle.swf

  1. パッチを実行します

私のために働いた



これは私(および他の人)がこれまでに遭遇したことの要約です、私はそれをソートし続けようとしています、不足しているものを自由に追加またはリンクしてください、投稿はコミュニティウィキです:

パッチが失敗した理由

「エラー:パッチを正常に適用/元に戻すことができません」と表示された場合は、ログメッセージで「ハンク#1が失敗しました」を探して、パッチが失敗したファイルを確認してください。

  • どうやらMagento1.7のパッチのv2はSUPEE-3941が提示することを期待しています Magento1.8と1.9にのみ存在しますが 。 Magento 1.7を使用していて、ファイルに関連するエラーが表示された場合ダウンローダー、1.8用のSUPEE-3941をダウンロードし、1.7に適用すると、動作するはずです。ここのコメントスレッドを参照してください:セキュリティパッチSUPEE8788の問題
  • 以前にSUPEE-1533が適用されたMagentoバージョンでは、パッチは次の場所で失敗します。app / code / core / Mage / Adminhtml / controllers / DashboardController.phpは、ファイルが両方のパッチの影響を受け、SUPEE-8788(誤って!)はパッチが適用されていないバージョンが存在することを前提としているためです。 これは、パッチのバージョン2でも当てはまります。 バージョン2にはSUPEE-1533からの変更が含まれているため、以前にインストールした場合でも、元に戻す必要がありますが、後で手動で再度適用する必要はありません。

  • 'downloader'ディレクトリを削除または名前変更した場合、ダウンローダー内のファイルにパッチが適用されるため、パッチは失敗します。最も簡単な回避策は、元のダウンローダーディレクトリを復元し、パッチを適用してから、ディレクトリを再度削除することです。または、次の手順を削除することもできますパッチからのdownloader / lib / Mage / HTTP / Client /Curl.php。

  • その他の「HunkFAILED」メッセージは通常、コアファイルの変更または以前のパッチの欠落が原因です。 Magentoバージョンの以前のパッチがすべてインストールされており、コアファイルに変更を加えていないことを確認してください。

  • もう1つの一般的な問題は、パッチの削除に失敗することです。バイナリコンテンツのための.swfファイル。エラーは次のようになります。

    ファイルskin / adminhtml / default / default / media / uploaderSingle.swfをチェックしています逆にされた(または以前に適用された)パッチが検出されました! -Rと仮定しますか? [n]とにかく適用しますか? [n]パッチをスキップします。 1つの塊のうち1つは無視されます

    またはこのように

    プランAを使用してファイルskin / adminhtml / default / default / media / uploader.swfにパッチを適用しています...空のコンテキストを無視すると、入力ファイルにそのような2行目は常に一致しません。ハンク#1は0で失敗しました。skin/ adminhtml / default / default / media /uploader.swfのパッチ適用中に1つのハンクのうち1つが失敗しましたうーん...次のパッチは私には統一された差分のように見えます...これは。。。でした:  -  -  -  -  -  -  -  -  -  -  -  -  - 

    またはこのように:

    パッチを正常に適用/元に戻すことができるかどうかを確認しています... / bin / patch:**** 5790行目の不正な形式のパッチ:?rM] M ??????&X㔮?? v ?? Q; r?N? qJ ?? Y ??? I0?Y ?? 4 ?? '????? 9?。?? X?Ǒ?{?? ax!G ??? I ??? q?u | ??? ?թ?????? | [メール保護] ?? |? ?g?Haꪭ??Ю???、I '?ğ????。?? yI?I  ????)?X? ?p ??? *?e?q?K8考えられる解決策は、@ infaboによるこの回答に記載されています。 https://gist.github.com/piotrekkaminski/9bc45ec84028611d621eで説明されているようにcurlを使用して、パッチを適用するシステムに直接パッチをダウンロードすることは、Cygwinで試した場合を除いて、常に機能しました。

失敗したパッチを処理する高度な方法: @PeterOCallaghanは、ドライラン行をコメントアウトし、*。rej​​ファイルを手動で処理することを提案しました。このようにして、パッチを部分的に適用でき、swfファイルの削除に失敗した場合は、手動で行うことができます。または、ファイルの更新に失敗した場合そのディレクトリを削除したのでダウンローダー、あなたはそれを無視することができます。

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(または同様のファイル名)の変更_apply_revert_patchドライランは次のようになります#_apply_revert_patchドライラン

  2. 発行してパッチを実行します./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

それはあなたのファイルにパッチを当てます

  1. コメント_apply_revert_patch to#_apply_revert_patch

  2. パッチを再度実行して、app / etc / app / etc /applied.patches.listエントリ

  3. すべての.rejファイルのgrep

    gitステータス| grep * .rej

  4. それらの変更を手動で行う

パッチ適用後の問題

フォームキー

  • 1.8より前のMagentoバージョンでは、フロントエンド/ベース/デフォルトテンプレート。これらのファイルを上書きする場合は、テーマに同じ変更を手動で適用するようにしてください

    具体的には、次のようなフロントエンドアクション用にフォームキーが追加されました。

    • ウィッシュリストからアイテムを削除する
    • ストアビューから顧客の住所を削除する
    • バスケット内の見積もりアイテムを更新する

    これらのアクションで問題が発生した場合は、@ LukeRogersによるこの回答を参照してください。

カスタムアップローダー

Unirgy_Rapidflowおよびカスタムアップロードフォームを備えたその他の拡張機能は機能しなくなりました。

@mpchadwickによるこの回答と@lloiaconoによるコメントを参照してください

交換して直しました$ this-> getUploader()-> getConfig()with$ this-> getUploader()-> getUploaderConfig()inUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

拡張機能のいずれかがこれを使用しているかどうかを確認するには、コマンドラインで次を実行できます。

grep -R'getUploader()-> getConfig(); 'アプリ/コード/コミュニティ

報告されたエラーメッセージ

  • PHPの致命的なエラー:未定義の関数hash_equals()の呼び出し

    5.6より前のバージョンのPHPを使用していて、オーバーライドした場合に発生しますcode / core / Mage / core / Functions.php incode / local / Mage / core / Functions.php(Fishpig拡張機能を使用している場合に当てはまる可能性があります)。 @ClaudiuCreangaによるこの回答を参照してください


パッチのv2で解決された問題

これらの問題のいずれかが発生した場合は、パッチのバージョン1(ファイル名に「v1」)を使用している可能性があります。パッチを再度ダウンロードして、これらの問題を修正する「v2」を入手してください。

  • SUPEE-3941との互換性の問題がありましたdownloader / lib / Mage / HTTP / Client / Curl.php

  • /lib/Unserialize/Reader/ArrValue.phpの「サポートされていないデータ型N」というメッセージを含む「例外」

  • EE 1.14.2.0のパッチには、誤って新しいファイルtest_oauth.phpが含まれていました。 削除する必要があります! @MatthiasZeisによるこの回答を参照してください