Sicherheitspatch SUPEE-8788 - Mögliche Probleme?


108

Der neueste Magento 1-Sicherheitspatch SUPEE-8788 enthält 17 APPSEC-Updates . Es ist daher sehr wichtig, dass Sie ihn so bald wie möglich anwenden. Andererseits gibt es viele potenzielle Abwärtskompatibilitätsprobleme, und angesichts der Patch-Historie des letzten Jahres würde ich es nicht achtlos anwenden.

Gut ist, dass es diesmal keine Frontend-Vorlagen gibt, so dass wir nicht alle unsere Themes patchen müssen. Dies gilt nur für Magento 1.8 oder höher.

Dennoch: Traten nach der Installation des Patches Kompatibilitätsprobleme oder Fehler auf?


6
"Es sind keine Frontend-Vorlagen beteiligt" - ist für ältere Magento-Versionen nicht korrekt. Beispielsweise ändert der Patch 1.7.0.2 9 Frontend- / Basis- / Standard-Vorlagendateien.
Kristof bei Fooman

magento.stackexchange.com/questions/140571/… täuscht dieses? Vielleicht bündeln Sie alle Informationen hier ...
7ochem

2
Bei Problemen mit den SWF-Aktualisierungen des Patches entfernte ich einfach die Zeilen 5951-9818 aus dem Patch und entfernte die SWF-Dateien manuell von /skin/adminhtml/default/default/media- da dies ohnehin alles war, was der Patch tat.
Liam McArthur

Ich weiß nicht warum, aber nach der Installation von 8788 unter 1.8.0.0 wird Patch 7405 als NICHT installiert gemeldet. während v1 und v1.1 zuvor installiert waren
MagenX

2
@srinivas hast du den Medienordner von diesem Pfad entfernt skin / adminhtml / default / default?
Priya Ponnusamy

Antworten:


107

Wichtige Notizen

Bitte beachten Sie, dass 1.9.3 sich von 1.9.2.4 + SUPEE-8788 unterscheidet. Hier ist der Unterschied zwischen den beiden: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

Update 14. Oktober: v2 des Patches wurde veröffentlicht (siehe unten) Ab dem 13. Oktober wurden die Patches für 1.5.x bis 1.8.x aufgrund der Inkompatibilität mit früheren Patches von der Magento-Website entfernt (siehe unten):

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

V3 des Patches

Diese neue Version ist nur für Magento EE 1.13.0.x

Wende die V3 an:

  • SUPEE 1533 wiederherstellen (falls installiert)
  • installiere SUPEE 3941 (falls nicht installiert)
  • Installieren Sie SUPEE 8788 v3

V2 des Patches

Wende die V2 an:

  • SUPEE 8788 v1 zurücksetzen
  • SUPEE 1533 wiederherstellen (falls installiert)
  • installiere SUPEE 3941 (falls nicht installiert)
  • Installieren Sie SUPEE 8788 v2

DemacMedia hat ein nützliches Bash-Skript entwickelt, um den obigen Prozess zu automatisieren. Sie finden es hier: https://github.com/DemacMedia/magento-SUPEE8788-patcher

Details zum Patch

Nach dem Einarbeiten in den Patch sind hier die interessanten Teile (Patching von 1.9.2.4):

  • Mage_Adminhtml_Block_Media_Uploaderwurde durch ersetzt, Mage_Uploader_Block_Multipledaher gibt es ein vollständiges Mage_UploaderModul, das die Flash-Unterstützung aufhebt . Der alte Block ist jetzt veraltet und erweitert den neuen Block.
  • Bezüglich des Uploaders wurde das Mage_DownloadableModul überarbeitet, um den neuen Nicht-Flash-Uploader zu handhaben. Es wird Mage_Uploader_Block_Singleals Upload-Block verwendet, anstatt Vorlagen zu verwenden.
  • Nach dieser Änderung t er SWF - Dateien skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfund skin/adminhtml/default/default/media/uploaderSingle.swfwurde gelöscht.
  • Der Adresslöschcontroller ist jetzt mit dem Formularschlüssel direkt über das getDeleteUrlvon geschütztMage_Customer_Block_Address_Book
  • Der Controller zum Entfernen von Wunschzettel-Artikeln ist jetzt mit dem Formularschlüssel über das getRemoveUrlvon geschütztMage_Wishlist_Helper_Data
  • Die Paypal Express-Zahlungsmethode stellt jetzt sicher, dass die von Kunden verwendete E-Mail-Adresse in Magento vorhanden ist, wenn ein neuer Benutzer ausgecheckt und registriert wird. (Verstehen Sie: Der neue Benutzer wird erstellt, bevor das neue Angebot verarbeitet wird.)
  • Die Zahlungsmethoden mit dem cURL / HTTP-Client haben jetzt den Wert CURLOPT_SSL_VERIFYHOST2 (vorher 0) und das CURLOPT_SSL_VERIFYPEERFlag wird jetzt zu den cURL-Aufrufen hinzugefügt. Das Verify Peer-Flag kann über die Konfiguration der Zahlungsmethode in der Dropdown-Liste Enable SSL Verification (SSL-Überprüfung aktivieren) aktiviert / deaktiviert werden.
  • Mage_Http_Client_CurlJetzt wurde CURLOPT_SSL_VERIFYPEERauf true gesetzt (war vorher false) . Achten Sie darauf, wenn Sie ein benutzerdefiniertes Modul verwenden.
  • Die maximalen Abmessungen für Produktbilder können jetzt in der Konfiguration konfiguriert werden. Hinweis: Wenn Sie zu große Bilder hochladen, kann dies zu einer lustigen Fehlermeldung führen: Unzulässiges Dateiformat in Magento 1.9.2.2 nach dem Patch-Upload

Bekannte Probleme mit SUPEE-8788 v2

Bekannte Probleme mit SUPEE-8788 v1

Bekannte 1.9.3.0-Probleme

Bearbeiten: Da die Liste immer länger wird und in dieser Antwort (da sie nicht mit SUPEE-8788 zusammenhängt) nicht zum Thema gehört, können Sie in diesem Beitrag die Liste der bekannten 1.9.3.0-Probleme nachlesen: https: //magento.stackexchange. com / a / 140826/2380


1
Danke für die umfangreiche Liste! Eine Frage: Sind Sie sicher, dass das Problem der Volltextsuche für den SUPEE-8788-Patch gilt? Ich kann keine Änderungen in Bezug auf diese Funktionalität finden.
Aad Mathijssen

1
@MageDev bitte auf den dritten Kommentar in der Frage verweisen;)
Raphael bei Digital Pianism

1
Wenn der Produkt-Uploader nach erfolgreicher Patch-Installation nicht funktioniert und Sie das beliebte CreareSEO-Plugin verwenden, muss dieses
Update

1
Ich habe bemerkt, dass Sie erwähnt haben, dass die Paypal Express-Zahlungsmethode jetzt sicherstellt, dass die verwendete Kunden-E-Mail in Magento vorhanden ist. Bedeutet das, dass der Gast nicht mit PayPal Express checken kann? Sie müssen registrierter Benutzer sein? Vermisse ich etwas?
Icon

1
Einige Erweiterungen von Drittanbietern, die den alten Uploader verwendet haben, sind nach dem Anwenden des Patches nicht mehr funktionsfähig. Zum Beispiel fügt "Magic 360" eine Registerkarte zu den Backend-Produktdetails hinzu. Nach dem Patchen können Sie Ihre Produktdetails nicht mehr anzeigen / bearbeiten. Ich habe dieses Problem beim Erweiterungsentwickler von Magento Connect bemerkt ( magentocommerce.com/magento-connect/… ).
DarkCowboy

29

Beim Anwenden des Patches kann dieser Fehler auftreten:

checking file skin/adminhtml/default/default/media/flex.swf
checking file skin/adminhtml/default/default/media/uploader.swf
checking file skin/adminhtml/default/default/media/uploaderSingle.swf
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
checking file skin/adminhtml/default/default/xmlconnect/boxes.css

Der 8788-Patch enthält binären Inhalt. Da Magento keine direkten Download-Links bereitstellt (ich hasse diese Richtlinie seitdem), müssen Sie den Patch auf Ihren Computer herunterladen und mit einer Dateiübertragungsanwendung (wie WinSCP unter Windows) auf Ihren Server hochladen. WinSCP lädt beispielsweise im TEXT-Modus hoch (WinSCP behandelt * .sh-Dateien standardmäßig als Text).

Der Workaround dafür ist also, die Patch-Datei zu zip / taren und sie auf dem Server erneut zu entpacken / entpacken. et voila.


Entschuldigung, ich hatte keine Möglichkeit, dies zu beantworten

  1. Lade die richtige Magento-Version herunter (zB: CE 1.9.1.0)
  2. Ersetzen Sie die folgenden Dateien durch den heruntergeladenen Speicherort

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

  1. Führen Sie den Patch aus

Hat für mich gearbeitet



10
Hast du die OPs Frage gelesen? fschmengler fragte: "Trotzdem: Sind nach der Installation des Patches Kompatibilitätsprobleme oder Fehler aufgetreten?" Ich bin auf dieses Problem gestoßen, WÄHREND ich den Patch angewendet habe. Ich denke der Sinn dieses Threads ist, die möglichen Fehler von SUPEE-8788 zu dokumentieren. Dies schließt - meiner Meinung nach - auch Probleme mit dem Patch selbst ein.
Infabo

Hat gut geklappt, danke! Ist es am besten, dies auch für ALLE zukünftigen Magento-Patches zu tun?
KiwisTasteGood

oder Sie dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb

Im Allgemeinen war es vorher nicht notwendig und ich gehe davon aus, dass es in Zukunft nicht notwendig sein wird. Ich denke, die Uploader-SWFs waren die einzigen mit Magento 1.x gelieferten Binärdateien - jetzt sind sie weg. So etwas erwarte ich auch in Zukunft nicht mehr.
Infabo

3
Wenn Sie die .shPatch-Datei mit FileZilla in Ihr Magento-Stammverzeichnis hochladen , setzen Sie den Übertragungstyp auf, binarybevor Sie die Patch-Datei hochladen. Referenz
ForMat

25

Wenn Sie zuvor SUPEE-1533 angewendet haben, schlägt der Patch fehl app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Ich habe das gelöst durch ...

  1. Setzen Sie die Änderungen, die SUPEE-1533 an dieser Datei vorgenommen hat, manuell zurück
  2. Tragen Sie SUPEE-8788 auf
  3. Führen Sie die Änderungen, die SUPEE-1533 an dieser Datei vorgenommen hat, manuell wieder ein

Das Entfernen der Änderung vom SUPEE-8788 ist gefährlich, da die Patch-Datei Binärdaten enthält und das Speichern in einem Editor Probleme verursachen kann (ein weiteres Problem).


Soweit ich weiß, haben Sie den ursprünglichen 1533-Patch zurückgesetzt, SUPEE 8788 installiert und dann 1533 erneut installiert? Verstehe ich richtig?
Icon

Ich habe auch ein Problem mit FAILED HUNK unter 28 app / design / frontend / base / default / template / review / form.phtml
Icon

9
Ich frage mich, warum wir, wenn wir uns die Zeit nehmen, offizielle inkrementelle Patches richtig anzuwenden, dafür bestraft werden, dass wir manuelle Korrekturen vornehmen müssen, wenn Patches nicht funktionieren, wenn zuvor gelieferte Patches angewendet wurden. Ein sehr seltsamer Ansatz.
Jon Holland

1
Die meisten Versionen unter 1.9, auf denen SUPEE 1533 installiert ist, können den Patch nicht ordnungsgemäß installieren. SUPEE 8788 ist nicht kompatibel mit 1533
Icon

2
@ JonHolland Weil es Magento ist.
Agop

25

Hier ist eine Zusammenfassung dessen, was ich (und andere) bisher erlebt habe. Ich versuche, es zu sortieren, fühle mich frei, etwas hinzuzufügen oder zu verlinken, was fehlt. Der Beitrag ist ein Community-Wiki:

Gründe für einen fehlgeschlagenen Patch

Wenn "FEHLER: Patch kann nicht erfolgreich angewendet / zurückgesetzt werden" angezeigt wird, suchen Sie in den Protokollmeldungen nach "Hunk # 1 FAILED", um zu überprüfen, bei welcher Datei der Patch fehlgeschlagen ist.

  • Anscheinend erwartet Version 2 des Patches für Magento 1.7 die Veröffentlichung von SUPEE-3941, obwohl es nur für Magento 1.8 und 1.9 existiert . Wenn Sie mit Magento 1.7 arbeiten und Fehler in Bezug auf Dateien in sehen downloader, laden Sie SUPEE-3941 für 1.8 herunter und wenden Sie es auf 1.7 an, es sollte funktionieren. Siehe Kommentar Thread hier: Sicherheitspatch SUPEE 8788 Problem
  • Auf Magento - Versionen , die SUPEE-1533 vor angewendet hatten, versagt der Patch auf , app/code/core/Mage/Adminhtml/controllers/DashboardController.phpweil die Datei von beiden Patches und SUPEE-8788 (falsch!) Betroffen ist , wird davon ausgegangen , dass die ungepatchte Version vorhanden ist. Dies gilt nach wie vor für Version 2 des Patches! Version 2 enthält die Änderungen von SUPEE-1533. Wenn Sie es also zuvor installiert haben, müssen Sie es immer noch zurücksetzen, aber danach müssen Sie es nicht erneut manuell anwenden.

  • Wenn Sie das "Downloader" -Verzeichnis gelöscht oder umbenannt haben, schlägt der Patch fehl, da eine Datei im Downloader gepatcht wird. Die einfachste Lösung besteht darin, das ursprüngliche Downloader-Verzeichnis wiederherzustellen, den Patch anzuwenden und das Verzeichnis dann erneut zu löschen. Alternativ können Sie auch die Anweisungen für downloader/lib/Mage/HTTP/Client/Curl.phpaus dem Patch entfernen .

  • Andere "Hunk FAILED" -Nachrichten sind normalerweise auf Änderungen in den Kerndateien oder fehlende vorherige Patches zurückzuführen. Stellen Sie sicher, dass alle vorherigen Patches für Ihre Magento-Version installiert sind und Sie keine Änderungen an den Kerndateien vorgenommen haben.

  • Ein weiteres häufiges Problem ist, dass der Patch .swfDateien aufgrund ihres binären Inhalts nicht löschen kann. Der Fehler sieht dann so aus:

    checking file skin/adminhtml/default/default/media/uploaderSingle.swf
    Reversed (or previously applied) patch detected!  Assume -R? [n]
    Apply anyway? [n]
    Skipping patch.
    1 out of 1 hunk ignored
    

    oder so

    Patching file skin/adminhtml/default/default/media/uploader.swf using Plan A...
    No such line 2 in input file, ignoring
    Empty context always matches.
    Hunk #1 failed at 0.
    1 out of 1 hunks failed while patching skin/adminhtml/default/default/media/uploader.swf
    Hmm...  The next patch looks like a unified diff to me...
    The text leading up to this was:
    --------------------------
    

    oder so:

    Checking if patch can be applied/reverted successfully...
    /bin/patch: **** malformed patch at line 5790: ?rM]M??????&X㔮??v??Q;r?N?qJ??Y???I0?Y??4??'?????9?.??X?Ǒ?{??ax!G???I???q?u|????թ??????|
                                                   h??o?V@??|? ?g?H aꪭ??Ю???,I"?ğ????.??    yI?I\????)?X?
                         ?p???*?e?q?K8<DqD?H;|?
    ERROR: Patch can't be applied/reverted successfully.
    

    Mögliche Lösungen werden in dieser Antwort von @infabo angegeben. Das Herunterladen des Patches direkt auf das System, auf das ich ihn anwenden möchte, unter Verwendung der unter https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e erläuterten Funktion "curl" hat bei mir immer funktioniert, außer wenn ich es unter Cygwin ausprobiert habe

Fortgeschrittene Möglichkeit, mit fehlgeschlagenen Patches umzugehen : @PeterOCallaghan schlug vor, die Probelauf-Zeile auszukommentieren und die * .rej-Dateien manuell zu verarbeiten. Auf diese Weise kann der Patch teilweise angewendet werden. Wenn die SWF-Dateien nicht gelöscht werden können, können Sie dies manuell tun. Wenn die Aktualisierung der Dateien fehlschlägt, downloaderweil Sie dieses Verzeichnis gelöscht haben, können Sie dies einfach ignorieren.

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(oder einen ähnlichen Dateinamen) ändern _apply_revert_patch dry-run, um wie folgt auszusehen #_apply_revert_patch dry-run

  2. Führen Sie den Patch aus, indem Sie ihn ausgeben ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

Das wird Ihre Dateien patchen

  1. Kommentar _apply_revert_patchan#_apply_revert_patch

  2. Führen Sie den Patch erneut aus, um den app/etc/app/etc/applied.patches.listEintrag hinzuzufügen

  3. grep für alle .rej Dateien mit

    git status | grep *.rej

  4. manuell in diesen Änderungen arbeiten

Probleme nach dem Anwenden des Patches

Formularschlüssel

  • Für Magento-Versionen vor 1.8 gibt es Änderungen in frontend/base/defaultVorlagen. Stellen Sie sicher, dass Sie dieselben Änderungen in Ihrem Design manuell anwenden, wenn diese Dateien überschrieben werden

    Insbesondere wurde ein Formularschlüssel für Frontend-Aktionen hinzugefügt, z.

    • Einen Artikel aus der Wunschliste entfernen
    • Löschen einer Kundenadresse aus der Geschäftsansicht
    • Aktualisieren eines Angebotselements in Ihrem Warenkorb

    Sehen Sie sich diese Antwort von @LukeRogers an, wenn Sie Probleme mit diesen Aktionen haben.

Benutzerdefinierter Uploader

Unirgy_Rapidflow und andere Erweiterungen mit benutzerdefinierten Upload-Formularen funktionieren nicht mehr.

Siehe diese Antwort von @mpchadwick und Kommentar von @lloiacono

Ich reparierte sie durch den Austausch $this->getUploader()->getConfig()mit $this->getUploader()->getUploaderConfig()inUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

Um herauszufinden, ob eine Ihrer Erweiterungen diese Funktion verwendet, können Sie in der Befehlszeile Folgendes ausführen:

grep -R 'getUploader()->getConfig();' app/code/community

Gemeldete Fehlermeldungen

  • PHP Fataler Fehler: Aufruf der undefinierten Funktion hash_equals ()

    passiert , wenn Sie auf einer PHP - Version vor 5.6 und außer Kraft gesetzt sind code/core/Mage/core/functions.phpin code/local/Mage/core/functions.php(was der Fall sein könnte , wenn Sie Fishpig Erweiterungen verwenden). Siehe diese Antwort von @ClaudiuCreanga


Probleme in Version 2 des Patches behoben

Wenn Sie auf eines dieser Probleme stoßen, verwenden Sie wahrscheinlich Version 1 des Patches ("v1" im Dateinamen). Laden Sie den Patch erneut herunter, um "v2" zu erhalten, mit dem die folgenden Probleme behoben werden:

  • Es gab ein Kompatibilitätsproblem mit SUPEE-3941 und downloader/lib/Mage/HTTP/Client/Curl.php

  • 'Ausnahme' mit der Meldung 'Nicht unterstützter Datentyp N' in /lib/Unserialize/Reader/ArrValue.php

  • Der Patch für EE 1.14.2.0 enthielt versehentlich eine neue Datei test_oauth.php, die Sie löschen sollten! Siehe diese Antwort von @MatthiasZeis


Der beim Aktualisieren des Angebotselements im Warenkorb hinzugefügte Formularschlüssel wurde nicht mit SUPEE-8788 (mindestens nicht ab 1.9.2.4) hinzugefügt
Raphael at Digital Pianism

@RaphaelatDigitalPianism mindestens der 1.13.0.1-Patch erweitert Mage_Checkout_CartController::updatePostActionmöglicherweise auch andere Patch-Versionen um die Validierung von Formularschlüsseln .
Luke Rodgers

23

Wenn du bekommst

Call to undefined function hash_equals() error

Auch wenn Ihr Patch erfolgreich war, kann dies bedeuten, dass Sie die Datei functions.php in kopiert haben app/code/local/Mage/Core.

Sie müssen diese Funktion auch dort einfügen, da diese Datei die Kernfunktion überschreibt.

Also app/code/local/Mage/Core/functions.phpam Ende einfügen :

if (!function_exists('hash_equals')) {
    /**
     * Compares two strings using the same time whether they're equal or not.
     * A difference in length will leak
     *
     * @param string $known_string
     * @param string $user_string
     * @return boolean Returns true when the two strings are equal, false otherwise.
     */
    function hash_equals($known_string, $user_string)
    {
        $result = 0;

        if (!is_string($known_string)) {
            trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
            return false;
        }

        if (!is_string($user_string)) {
            trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
            return false;
        }

        if (strlen($known_string) != strlen($user_string)) {
            return false;
        }

        for ($i = 0; $i < strlen($known_string); $i++) {
            $result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
        }

        return 0 === $result;
    }
}

1
Aus dem Nichts weiß ich, dass Fishpig Sie dazu auffordert. Wenn Sie das installiert haben, wird dies ein Problem für Sie sein.
mpchadwick

1
Hinweis: Ich war verwirrt und MWI fordert Sie auf, functions.php zu überschreiben, nicht Fishpig mwi-plugin.com/documentation/installation
mpchadwick

18

In PATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.shwird eine Datei test_oauth.phpim Magento-Stammverzeichnis erstellt. Sie sollten dieses löschen (oder es zumindest nicht für die Produktion bereitstellen), da es der Person, die die URL https: //thedomain.tld/test_oauth.php aufruft, eine vollständige Ablaufverfolgung des Ausnahmestapels zur Verfügung stellen kann .


Schöner Fang, Matthias! Es wäre eine schlechte Form, 17 APPSEC-Patches bereitzustellen und gleichzeitig einen anderen Vektor zu öffnen. Hast du dies schon Magento gemeldet?
Bryan 'BJ' Hoffpauir Jr.

Ich habe mit dem Magento-Support ein Ticket dazu geöffnet, da ich mir sicher bin, dass andere dies zu diesem Zeitpunkt getan haben. Ich habe noch nichts über eine v2-Version des Patches gehört, aber sie sollten sich des Problems bewusst sein.
Quasi-Objekt

1
Es wird eine v2 geben, die sehr bald veröffentlicht werden soll. Ja, ich habe es gemeldet, als ich hier gepostet habe.
Matthias Zeis

1
Sieht so aus, als ob das jetzt behoben ist
Erfan

18

Dies gilt für 1.7 MAGENTO-Versionen


Wenn Sie 1.7.0.2 Version 2 von SUPEE 8788 ausführen, schlägt der Versuch, Änderungen anzuwenden, in Zeile 372 fehlCurl.php :

patching file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client

Die Anweisungen besagen, dass wir SUPEE-1533 zurücksetzen und SUPEE-3941 installieren sollen

PROBLEMBESCHREIBUNG: SUPEE-3941 ist nur für Magento CE 1.8-1.9 verfügbar. Sie können versuchen, es für 1.7 anzuwenden, und es wird angewendet. Ich denkePatch-Entwickler Magento sollte entweder eine Version 3 von SUPEE-8788 für diejenigen veröffentlichen, die Magentos unter 1.8 ausführen, oder einen zusätzlichen SUPEE-3941-Patch erstellen, der für Versionen unter 1.8 entwickelt wurde.

Btw Version 1 von SUPEE-8788 hatte den Curl.phpFehler nicht auf 1.7.0.2 (Ich habe es auf vielen Installationen getestet)

Tipp: Wenn Sie am Ende auf SWF-Fehler stoßen, stellen Sie sicher, dass Sie Ihren Patch komprimieren, auf den Server hochladen und dort dekomprimieren. Der SWF-Fehler wird verschwunden sein.

AKTUALISIEREN:

Magento sagte, dass es grundsätzlich in Ordnung sei, den SUPEE-3941-Patch auf einer Magento 1.7.0.2-Version zu installieren, um Fehler beim Anwenden von SUPEE-8788 zu vermeiden


Wir wurden aufgegeben
datasn.io

@ kavoir.com erhalten Sie auch die gleiche CURL.PHP-Fehler bei der Installation auf 1.7.0.2?
Icon

1
Gleiches Problem hier: Installieren Sie 8788 V2 auf 1.7.0.2. Interessanterweise wird auf unseren neueren Websites der Version 1.9.2.1, auf denen SUPEE-3941 nicht verfügbar ist, derselbe curl.php-Fehler angezeigt. Das Zurücksetzen von 1533 hilft auch diesem Problem nicht
Jon Holland,

@ JonHolland Ich schrieb an das Magento-Team ... Ich hoffe, sie werden antworten
Icon

2
Ich habe eine Antwort vom Magento Community Leader erhalten. Grundsätzlich ist es in Ordnung, den 3941 Patch auf Version 1.7.0.2 zu installieren.
Icon

15

Original DashboardController.php (1.7.0.2- Nicht gepackt, frisch aus Magento)

  if ($params = unserialize(base64_decode(urldecode($gaData)))) {

1533 Patched DashboardController.php enthält die folgende Änderung

 if ($newHash == $gaHash) {
            $params = json_decode(base64_decode(urldecode($gaData)), true);
            if ($params) {

Der 8788-Patch nimmt die folgende Änderung in DashboardController.php vor

 if (hash_equals($newHash, $gaHash)) {
            if ($params = unserialize(base64_decode(urldecode($gaData)))) {

Wie Sie sehen können, hat 8788 eine geänderte Änderung im Vergleich zu 1533. Ich bin mir NICHT sicher, ob es das Ideal ist, die Datei zu ändern, wie es mpchadwick vorschlägt, indem 8788 nach der Installation von 8788 manuell durch 1533 ersetzt wird. 8788-Änderung im Grunde genommen entfernen.

Irgendwelche Vorschläge?


2
IMO Das gewünschte Endergebnis ist eine Mischung aus beiden. Es sollte json_decode sein, aber es sollte die hash_equals anstelle von == verwenden. Dies verhindert einen Timing-Angriff (der extrem schwer auszunutzen wäre).
Peter O'Callaghan

Stimmen Sie mit @Peter überein. Wenn Sie Git verwenden, setzen Sie das Commit für SUPEE-1533 zurück, wenden Sie den neuen Patch an, übernehmen Sie das Commit und setzen Sie das Commit erneut zurück. Der Konflikt in DashboardController.phpsollte dann automatisch gelöst werden.
Fabian Schmengler

1
Könnten Sie bitte einen Code für DashboardController.php bereitstellen, den wir nach der Installation von 8788 ersetzen sollten? Ich bin nicht genau sicher, was ich bearbeiten soll, wie ich oben erwähnt habe, 1533 und 8788 Patchd-Linien sehen anders aus. Können Sie uns bitte mitteilen, wie eine manuell geänderte Version aussehen soll?
Icon

So sollte 8788-Code nach manueller Änderung mit dem 1533-Update aussehen? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData))) {
Icon

1
Hinweis zum zweimaligen Zurücksetzen von Commits: Möglicherweise können Sie SUPEE-1533 verwenden git revert -n 123456abund git cherry-pick -n 123456abvorübergehend rückgängig machen, ohne zusätzliche Commits dafür zu erstellen.
Matthias Zeis

14

Halb versucht, diesen Beitrag als primär meinungsbasiert oder ohne klare Antwort zu kennzeichnen;)

Ein paar Controllern wurden Formularschlüssel hinzugefügt. Die Anzahl variiert je nach Magento-Version.

Wenn Sie Probleme haben

  • Einen Artikel aus der Wunschliste entfernen
  • Löschen einer Kundenadresse aus der Geschäftsansicht
  • Aktualisieren eines Angebotselements in Ihrem Warenkorb

Sie müssen Ihre Themendatei überprüfen .phtmlund sicherstellen, dass Sie POSTden Formularschlüsselparameter überschreiten, damit er die Prüfung in den Controller-Aktionen besteht, z.

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

     public function updatePostAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_redirect('*/*/');
+            return;
+        }
+

Diese Probleme haben in früheren Patches eine Menge Leute in die Irre geführt. Benutzerdefinierte Frontend-Designs mit überschriebenen Vorlagen können beim Anwenden der Patches leicht übersehen werden.

Formularschlüssel werden häufig zu der .phtmlVorlage hinzugefügt, die das Formular als zusätzliches inputLike enthält

<input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />

Gibt es eine vollständige Liste der betroffenen Formulare? So kann ich sie ALLE ein für alle Mal testen und reparieren lassen. Sie möchten keine heimlich dummen Fehlfunktionen wie diese, um Kunden zu ärgern oder die Conversion-Rate zu senken.
datasn.io

Wenn ein SUPEE 8788 perfekt auf 1.7 installiert ist und Änderungen in (App / Design / Frontend / Basis / Standard / Vorlage .....) vornimmt. Aber trotz der Änderungswunschliste für das Website-Frontend funktionieren alle Schaltflächen zum Hinzufügen und Entfernen einwandfrei. Müssen wir immer noch Themendateien manuell patchen? Oder, solange der Patch nichts auf dem Frontend kaputt macht, können wir ihn so lassen, wie er ist?
Icon

11

Ich habe das gleiche Problem in SWF in 1.9.2.4 getroffen.

Fox Fixed - Bitte folgen Sie den unten stehenden Schritten.

Schritt 1. Laden Sie die SSH-Datei mit dem Sicherheitspatch 8788 auf diesen Link herunter: - https://magento.com/tech-resources/downloads/magento/

Schritt 2. Nach dem Download der Sicherheitspatch 8788 SSH-Datei Bitte in einen Ordner kopieren und denselben Ordner als Zip-Datei speichern.

Schritt 3. Laden Sie den Zip-Ordner in den Magento-Stammordner hoch und entpacken Sie ihn über SSH Putty.

Schritt 4. Führen Sie den Patch aus: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Hinweis: Die Patch-Datei enthält vollständige Binärdateien im Textformat. Wenn Sie daher eine SSH-Datei mit dem Sicherheitspatch 8788 ohne Zip-Datei hochladen, wird dieselbe Datei beschädigt. *


10

Nach der Anwendung von SUPEE-8788 konnte ich mit Unirgy_RapidFlow 2.0.0.18 keine "Import" -Profile mehr laden, und es wurde ein 500-Fehler angezeigt (nichts in Apache- oder HTTPD-Protokollen).

Ich bin immer noch dabei, Fehler zu beheben und mit Unirgy zusammenzuarbeiten, aber es scheint, dass der Uploader-Block das Problem verursacht ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload).

Mit dem Patch wurden einige Änderungen Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Contentam übergeordneten Element vorgenommen.

Zusätzlich zu uRapidFlow können andere Module von Drittanbietern, die das Hochladen von Dateien ermöglichen, aufgrund von SUPEE-8788 abstürzen.


hast du schon eine lösung dafür gefunden? Ich habe das Problem behoben, indem ich $ this-> getUploader () -> getConfig () durch $ this-> getUploader () -> getUploaderConfig () in Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

Gut bis jetzt. Unirgy scheint es auch in 2.0.0.23 behoben zu haben. secure.unirgy.com/release-notes.php?m=1#RapidFlow Ich arbeite mit einem Client zusätzliche Upgrades zu kaufen und nicht in der Lage zu bestätigen.
mpchadwick

Führen Sie dies auf Ihrem docroot aus, um herauszufinden, welche anderen Dateien repariert werden müssen: grep -r 'getUploader () -> getConfig ()' ./
lloiacono

8

Ich habe beim Ausführen des Patch-Skripts die folgende Meldung erhalten:

can't find file to patch at input line 4753
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
|index 6d0607e..5757be3 100644
|--- downloader/lib/Mage/HTTP/Client/Curl.php
|+++ downloader/lib/Mage/HTTP/Client/Curl.php

Ich denke, das liegt daran, dass ich den "Downloader" -Ordner umbenannt habe, gemäß den Empfehlungen von https://www.magereport.com .

Ich habe den Ordner vorübergehend in "downloader" umbenannt, den Patch korrekt angewendet und ihn dann mit seinem geheimen Namen umbenannt.


8

Patch auf 1.9.0.0 schlägt ebenfalls fehl (wahrscheinlich 1.8.0.0 bis 1.9.0.1 betroffen), da SUPEE-3941. 3941 Patches downloader / lib / Mage / HTTP / Client / Curl.php und jetzt schlägt der 8788 fehl.

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 378.
1 out of 1 hunk FAILED
checking file js/lib/uploader/flow.min.js

Problemumgehung für 1.9.0.1 weiter unten. Die Änderungen sind zu gründlich. Möglicherweise müssen Sie den 8788-Patch selbst anpassen.

edit: Bearbeiten Sie den Patch, suchen Sie nach Curl.php und ersetzen Sie ihn

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         }

         $this->curlOption(CURLOPT_URL, $uri);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, FALSE);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');

         // force method to POST if secured
         if ($isAuthorizationRequired) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js 

mit

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         $uriModified = $this->getSecureRequest($uri, $isAuthorizationRequired);
         $this->_ch = curl_init();
         $this->curlOption(CURLOPT_URL, $uriModified);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, false);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');
         $this->getCurlMethodSettings($method, $params, $isAuthorizationRequired);

         if(count($this->_headers)) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js

Ich habe die Patch-Dateien so angepasst, dass sie für alle Magento-Versionen funktionieren, nachdem alle vorherigen Patches installiert wurden: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen -

8

Folgendes bekomme ich

Hunk #1 FAILED at 373.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client/Curl.php.rej
patching file js/lib/uploader/flow.min.js
patching file js/lib/uploader/fusty-flow-factory.js
patching file js/lib/uploader/fusty-flow.js
patching file js/mage/adminhtml/product.js
patching file js/mage/adminhtml/uploader/instance.js
patching file skin/adminhtml/default/default/boxes.css
patching file skin/adminhtml/default/default/media/flex.swf
patching file skin/adminhtml/default/default/media/uploader.swf
patching file skin/adminhtml/default/default/media/uploaderSingle.swf
patching file skin/adminhtml/default/default/xmlconnect/boxes.css

Bei einer Installation wird genau derselbe Fehler angezeigt. Würde gerne wissen, ob Sie etwas herausgefunden haben.
TunaMaxx

Nein, ich warte immer noch darauf, dass jemand anderes es herausfindet
Haim

2
Siehe magento.stackexchange.com/a/73957/9276 . Wenn Ihre Curl.php-Datei dieses Update enthält, machen Sie diese Änderung rückgängig (setzen Sie die Zeile auf CURLOPT_SSL_CIPHER_LIST / 'TLSv1' zurück), wenden Sie den Patch an und wiederholen Sie die Änderung.
Joe

Vielen Dank an Joe. Bin gerade hierher zurückgekommen, um die gleichen Informationen zu posten. Du warst schneller als ich! Das bekomme ich, wenn ich schlafen gehe. :)
TunaMaxx

Hatte das gleiche Problem, das löste es. Vielen Dank!
DafyddPrys

8

Es sieht so aus, als würde Magento eine aktualisierte Version des SUPEE 8788 veröffentlichen, um die SUPEE 1533-Kompatibilität zu beheben. Ich bin mir nicht sicher, ob es eine gute Idee ist, das Problem jetzt manuell zu beheben. Manuelle Änderungen können zukünftige Patch-Updates beeinträchtigen. Möchte deine Gedanken hören.

Es wurde vom Magento Community Manager bestätigt. Ab dem 13. Oktober, 15.00 Uhr EST. Werden alle Patches für Versionen unter 1.9 von der Downloadliste gelöscht. Https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 Siehe Beitrag: https://community.magento.com/t5 / Sicherheitspatches / SUPEE-8788-AND-SUPEE-1533-Inkompatibler-Hunk-Fehler / mp / 50514 / highlight / false # M1805


1
Wenn der aktualisierte Patch genau das gleiche Ergebnis hat wie unsere manuellen Korrekturen und ich hoffe, dass dies der Fall ist, sehe ich kein Problem. Der aktualisierte Patch wird nicht benötigt und zukünftige Patches werden keinen Unterschied sehen.
Fabian Schmengler

1
@fschmengler ziemlich ähnlich der PHP 5.5-Inkompatibilität für SUPEE-7405 IMO. Der Patch gibt die manuelle Korrektur wieder.
Raphael bei Digital Pianism

1
@fschmengler Meines Wissens wird Magento genau denselben Patch mit Korrekturen erneut veröffentlichen. Ich denke, es ist am besten, den alten Patch (selbst modifiziert) zu entfernen und den neuen zu installieren (wahrscheinlich am nächsten Tag veröffentlicht). Bis morgen sollten wir ein Update haben. Danke für die Hilfe!
Icon

Ich bezweifle nicht den Wert dieses Beitrags, aber wenn ich mich an den Q & A-Stil halte, scheint diese Antwort keine Antwort für mich zu sein, sondern eher ein Update, das @fschmengler seiner ursprünglichen Frage hinzufügen könnte (oder Sie können es der hinzufügen) Community Wiki Antwort).
7ochem

8

Wir erhalten Berichte über die folgenden neuen Probleme, die ich in anderen Beiträgen nicht sehe:

  • Ausnahmen in den neuen Releases in einigen Fällen - Methodenaufruf addCrumbs () (falls getStoreConfig (web / default / show_cms_breadcrumbs) undefiniert ist). Sollte den Patch nicht betreffen, nur die Version 1.9.3 / 1.14.3

'Ausnahme' mit der Meldung 'Nicht unterstützter Datentyp N' in /lib/Unserialize/Reader/ArrValue.php in 1.9.1.0 und möglicherweise in früheren Versionen, wenn der Patch angewendet wird. behoben in Patch Version 2.

Derzeit sind keine einfachen Problemumgehungen für diese Probleme bekannt. Wir arbeiten daran, sie in einer neuen Patch-Version zu beheben.


Mögliche Fehlerbehebung für den nicht unterstützten Datentyp-N-Fehler gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Raphael bei Digital Pianism

Hast du eine Idee, wie du den Curl.php-Fehler überwinden kannst, wenn du SUPEE 8788 auf den Versionen 1.6 und 1.7 installierst?
Icon

8

Der Uploader wird unterbrochen, wenn Sie dieselbe Datei für Beispiele und Links für herunterladbare Produkte gleichzeitig hochladen. Beachten Sie, dass dies nur geschieht, wenn Sie in beiden Bereichen dieselbe Datei verwenden. (Früher hat es vor dem Patch richtig funktioniert.)

Bearbeiten Sie zum Reproduzieren ein herunterladbares Produkt und klicken Sie auf die Registerkarte Herunterladbare Informationen :

  1. Öffnen Sie die Samples- Zeile des Akkordeons und suchen Sie nach einer Beispieldatei.
  2. Auf den Verbindungen Zeile des Akkordeons, suchen Sie nach einem Download - Link
  3. Klicken Sie im Abschnitt "Links" auf " Dateien hochladen".

Der Uploader lädt die Beispieldatei anstelle der herunterladbaren Linkdatei hoch und die Datei, nach der Sie im Abschnitt mit den herunterladbaren Links gesucht haben, verschwindet.

Ich konnte dies auf einer Vanille, gepatchten 1.7.0.2 CE-Installation, reproduzieren.


Es stellt sich heraus, dass dies das Verhalten der zugrunde liegenden JS-Bibliothek ist, die zum Hochladen verwendet wird: github.com/flowjs/flow.js/issues/76
Laura

6

Ja, bei der Anmeldung ist ein anderes Problem aufgetreten. Es wird immer Folgendes zurückgegeben:

Ich habe festgestellt, dass dies daran liegt, dass in der Klasse Enterprise_Pci_Model_Observer in Zeile 165

Anstatt von:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPassword())) {

Dadurch wird Folgendes behoben:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPasswordHash())) {

Da ich den Kern nicht gerne ändere (auch nicht lokal), ist es am besten, wenn Magento dies behebt oder klärt. Momentan werden von mir neue Erweiterungen erstellt, um dies zu erweitern und Funktionen für getPassword () zu erstellen (da ich sicherstellen möchte, dass alle Entwickler den Entwicklermodus verwenden).


2
Nachdem ich jetzt die V2 des Patches angewendet habe, stoße ich auf dasselbe Problem beim Patchen von EE1.12. Es sieht so aus, als ob sich diese Datei zwischen 1.12 und 1.14 geändert hat, aber nicht als Teil der Patches
Chris

1
Wir haben dies mit Magento besprochen und einen weiteren Patch bereitgestellt, um das Problem zu beheben. Die Änderung ist mit der obigen identisch.
Chris

6

Bearbeiten der Patch-Datei

Wenn jemand die Patch-Datei bearbeiten muss, sollten Sie dies nicht in einem Editor tun, da dadurch die im Patch enthaltenen Binärdateien beschädigt werden.

Wenn Sie eine Befehlszeile zur Hand haben, z. Versuchen Sie unter Linux / * Unix sed, bestimmte Zeilen mit dem Dienstprogramm zu entfernen.

Requisiten an @fooman für den Tipp. Siehe sein Original

Beispiel sed -ie '101,111d' PATCH_SUPEE-8788_CE_1.7.0.2_v1-2016-10-11-06-36-18.sh

Dadurch werden die Zeilen 101 bis 111 einschließlich gelöscht.

Probleme beim Einreichen von Formularen.

Wenn Sie die oben genannte Ausgabe sehen, können Sie auch Sie:

<?= $this->getBlockHtml('formkey'); ?>

Weitere Informationen finden Sie in diesem Beitrag. Was ist getBlockHtml ('formkey')?


4
Seien Sie vorsichtig, <?=es ist nicht bei jeder PHP-Konfiguration aktiviert
Raphael bei Digital Pianism

@ RaphaelatDigitalPianism du hast recht. Obwohl <?=es in den meisten php.ini-Konfigurationen standardmäßig aktiviert ist, deaktivieren einige Hosts es.
Sergei Filippov

5

CE 1.6.2.0 & SUPEE-3941

Um den Sicherheitspatch SUPEE-8788 (Version 2) ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) zu installieren, wird empfohlen, zuerst SUPEE-3941 zu installieren .

Auf der Patch-Download-Seite gibt es jedoch keinen SUPEE-3941-Patch für CE 1.6.2.0. Der Patch ist nur für CE 1.8 und 1.9 verfügbar.

Wie in diesem Thread erwähnt, scheint es in Ordnung zu sein, den verfügbaren SUPEE-3941-Patch (für CE 1.8 und 1.9) auf CE 1.7 anzuwenden.

Ist es auch in Ordnung, SUPEE-3941 (für CE 1.8 und 1.9) auf CE 1.6.2.0 anzuwenden? Ich habe versucht, es auf CE 1.6.2.0 anzuwenden und habe den folgenden Fehler erhalten:

Checking if patch can be applied/reverted successfully...
-e ERROR: Patch can't be applied/reverted successfully.

checking file downloader/Maged/Model/Connect.php
Hunk #1 succeeded at 489 (offset 3 lines).
checking file downloader/lib/Mage/Connect/Backup.php
checking file downloader/lib/Mage/Connect/Command.php
Hunk #1 FAILED at 64.
Hunk #2 succeeded at 205 with fuzz 2 (offset -44 lines).
Hunk #3 succeeded at 382 (offset -53 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Command/Install.php
Hunk #1 FAILED at 90.
Hunk #2 succeeded at 333 with fuzz 1 (offset 17 lines).
Hunk #3 succeeded at 363 (offset 17 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Packager.php
Hunk #4 FAILED at 268.
Hunk #5 FAILED at 290.
Hunk #6 succeeded at 369 with fuzz 2.
Hunk #7 FAILED at 377.
Hunk #9 FAILED at 428.
4 out of 10 hunks FAILED
checking file downloader/lib/Mage/Connect/Rest.php
Hunk #1 succeeded at 71 with fuzz 2 (offset -11 lines).
checking file downloader/lib/Mage/Connect/Singleconfig.php
Hunk #1 succeeded at 100 (offset -36 lines).
checking file downloader/lib/Mage/Connect/Validator.php
Hunk #1 succeeded at 418 (offset -41 lines).
Hunk #2 succeeded at 431 (offset -41 lines).
checking file downloader/lib/Mage/HTTP/Client/Curl.php
checking file downloader/template/settings.phtml

5

Ein bisschen spät, aber wir haben ein Problem mit dem Patch SUPEE-8788 V2 gefunden, das zumindest für die Patch-Dateien für Magento 1.7.0.2 und 1.7.0.1 gilt. Dies gilt wahrscheinlich auch für alle Vorgängerversionen, für die eine Patch-Version existiert. Magento-Version ab 1.8 ist nicht betroffen, da der Patch die Vorlagen für diese nicht ändert.

Im Detail

Dem Patch fehlt ein Formularschlüssel für die Datei app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

Ohne es funktioniert die Anmeldung an der Onpage-Kasse nicht (es funktioniert nur nicht ohne Fehler).

Fix

Ein Formularschlüssel muss wie in folgendem Patch eingefügt werden:

diff --git a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
index 9d15a577b..18483a3c5 100644
--- a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
+++ b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
@@ -71,6 +71,7 @@
         <h3><?php echo $this->__('Login') ?></h3>
         <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
         <form id="login-form" action="<?php echo $this->getPostAction() ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <fieldset>
             <h4><?php echo $this->__('Already registered?') ?></h4>
             <p><?php echo $this->__('Please log in below:') ?></p>

4

Für eine gepatchte 1533-Site ersetzen Sie einfach die folgende Zeile von PATCH_SUPEE-8788 *****. Sh:

diff --git app/code/core/Mage/Adminhtml/controllers/DashboardController.php app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index 09ffc4c..367bf8e 100644
--- app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,7 +91,7 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
+            if (hash_equals($newHash, $gaHash)) {
                 if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params) 

durch:

diff --git a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index ab2d654..367bf8e 100644
--- a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,9 +91,8 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
-                $params = json_decode(base64_decode(urldecode($gaData)), true);
-                if ($params) {
+            if (hash_equals($newHash, $gaHash)) {
+                if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params)
                             ->setConfig(array('timeout' => 5))
diff --git a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
index da1b14a..b6d72c0 100644
--- a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
+++ b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
@@ -444,7 +444,7 @@ class Mage_Adminhtml_Block_Dashboard_Graph extends Mage_Adminhtml_Block_Dashboar
             }
             return self::API_URL . '?' . implode('&', $p);
         } else {
-            $gaData = urlencode(base64_encode(json_encode($params)));
+            $gaData = urlencode(base64_encode(serialize($params)));
             $gaHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
             $params = array('ga' => $gaData, 'h' => $gaHash);
             return $this->getUrl('*/*/tunnel', array('_query' => $params));

Im Grunde genommen hat es gerade den 1533 zurückgesetzt und 8788 mitgenommen.


Wie ich verstehe, überschreibt das 8788 Änderungen in DashboardController.php und ursprüngliche 1533 Änderungen werden beseitigt?
Icon

2
Ja. Der Zweck von 1533, serialize () durch json_encode () zu ersetzen, bestand darin, die Wahrscheinlichkeit eines Angriffsausweises zu verringern ($ newHash == $ gaHash). Während 8788 aus dem gleichen Grund hash_equals () hinzufügt
William Zhao

Toll, ich hatte mir überlegt, etwas anderes zu tun. Auf meiner Testseite habe ich DashboardController.php (Standard-Magento-Datei) hochgeladen und SUPEE 8788 installiert. Ich habe jedoch in diesem Forum gelesen und einen Gentleman erwähnt, der Supee 1533-Änderungen manuell wieder in Supee einführt 8988 modifizierte Datei. Was denkst du über meine Methode?
Icon

Icon, schau auf meinen Diff oben, in deiner Art und Weise musst du die von SUPEE 1533 aktualisierte Zeile in 'app / code / core / Mage / Adminhtml / Block / Dashboard / Graph.php' auch zurückändern, wenn du bereits SUPEE 1533 hast gepatcht. Andernfalls wird Graph.php Parameter im Json-Format auslösen und Sie können sie nicht durch unserialize ()
William Zhao,

4

Die Authorize.net-Erfassung ist nach dem Anwenden des Patches fehlerhaft. Die Autorisierung funktioniert einwandfrei, aber beim Erfassen der Zahlung auf Rechnung wird "Gateway-Fehler: Kreditkartennummer erforderlich" angezeigt . Die Zahlungsprotokolldatei zeigt x_typenun den Wert für die Parameterübergabe an auth_capture, aber vor dem Patch hat die Übergabe prior_auth_capturefunktioniert. Tritt dieses Problem auf?

UPDATE: Behebung dieses Problems - Authorize.net erfasst nicht


4

Ich habe eine Kopie von Magento 1.9.2.4 mit SSH mit SUPEE-8788 gepatcht. Ich habe eine andere Kopie von Magento 1.9.2.4 mit ftp mit SUPEE-8788 gepatcht. Ich habe eine Kopie von Magento 1.9.1.0 mit SSH mit SUPEE-8788 gepatcht benutzte eine neue Kopie von Magento 1.9.3.1

Bei all diesen Magento-Websites mit SUPEE-8788 tritt das gleiche Problem auf (möglicherweise ein Fehler des Patches).

Verwenden von herunterladbaren Produkten und Aufrufen von Informationen zum Herunterladen-> Beispiele, wenn ich versuche, eine neue Zeile (eine oder mehrere) hinzuzufügen, indem ich auf das "X" klicke. Ich kann die Zeile nicht mehr entfernenBildbeschreibung hier eingeben

Ich bin kein Magento-Experte und versuche eine Lösung zu finden. Wenn ich finde, werde ich posten, wenn jemand von euch eine Lösung hat, wird sie für mich sehr, sehr nützlich sein

UPDATE : mit Chrome Inspector sah ich diesen Fehler:Bildbeschreibung hier eingeben

******* ICH HABE DIE LÖSUNG GEFUNDEN *******

Ich habe 2 Tage damit verbracht und hoffe, dass dies jemand anderem helfen kann. Dies ist ein Fehler in SUPEE-8788

Öffnen Sie die Datei samples.phtml app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

Finden Sie die Funktion

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        element.down('div.flex').remove();
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

und ersetzen Sie es durch

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        Element.select(element, 'div.flex').each(function(elm){
            elm.remove();
        });
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

Dadurch wird der BUG behoben


3

PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 wurde auf eine Testkopie der Site mit Version 1.9.2.1 angewendet und die Prüfung wurde abgebrochen. Setzen Sie den Patch zurück und der Checkout funktioniert wieder normal.

Wenn Sie die Bestellung abschicken, gelangen Sie zurück zum Warenkorb, anstatt den Kaufvorgang erfolgreich abzuschließen. Denken Sie, ich warte auf die .1-Version, bevor ich es erneut versuche.


klingt wie eine Ausnahme ausgelöst wird, während die Bestellung gespeichert wird, haben Sie Ihre Protokolle überprüft?
Simonthesorcerer

Sieht so aus ... Fataler PHP-Fehler: Klasse 'Mage_Core_Helper_UnserializeArray' nicht gefunden in ... / public_html / app / Mage.php in Zeile 547
Adam Lavery

@AdamLavery Gehen Sie zu Var / cache und löschen Sie den Cache-Ordner. Ich erhalte diesen Fehler, wenn ich die Paches auf das Original zurücksetze. Es ist eine Cache-Sache.
Icon

Neuer Patch sollte bald raus sein. Dies ist ein riesiges Patch-Update, bei dem keine Fehler zu erwarten sind ... Ja ... Daumen drücken.
Icon

1
Dies liegt wahrscheinlich daran, dass Sie vermisst werden. app/code/core/Mage/Core/Helper/UnserializeArray.phpDies wurde in SUPEE-6788 hinzugefügt, das Sie möglicherweise nicht installiert haben. Es sieht so aus, als hätte SUPEE-8788 eine undokumentierte Abhängigkeit von SUPEE-6788.
Tyler V.

3

Neue E-Mails in den frühen Morgenstunden von Magento geben an, dass neue Patch-Versionen zur Behebung der SUPEE-1533- und SUPEE-3941-Kompatibilitätsprobleme erstellt werden. Halten Sie also vielleicht nur ein bisschen Ihre Pferde.

ENTERPRISE EDITION 1.14.3, COMMUNITY EDITION 1.9.3 UND SUPEE-8788 Enterprise Edition 1.14.3 und Community Edition 1.9.3 bieten über 120 Qualitätsverbesserungen sowie Unterstützung für PHP 5.6. Sie lösen auch kritische Sicherheitsprobleme, darunter: ...

... Der SUPEE-8788-Patch behebt diese Sicherheitsprobleme in früheren Magento-Versionen. Leider haben wir festgestellt, dass die SUPEE-8788-Patches für Community Edition 1.8 und frühere Releases sowie Enterprise Edition 1.13 und frühere Releases fehlschlagen, wenn ein Store zuvor SUPEE-1533- oder SUPEE-3941-Sicherheitspatches angewendet hat. Wir arbeiten an der Behebung dieses Problems und werden in den nächsten ein bis drei Tagen neue Patches bereitstellen. Bis dahin entfernen wir diese Versionen des SUPEE-8788-Patches aus der Distribution ...

Ich bin jedoch besorgt, dass meine aktiven Magento-Versionen zwischen dem CE 1.9.3, von dem sie sagen, dass es funktioniert, und den neuen Versionen liegen, die in Kürze für V1.8 und niedriger verfügbar sind. Ich habe sie kontaktiert und werde abwarten, was sie sagen.


Keine wirkliche "Antwort", aber hoffentlich nützliche Informationen.
Jon Holland

Hallo Jon, du kannst auch die ursprüngliche Frage von @ fschmengler bearbeiten und diese unten als UPDATE hinzufügen . Ich denke, er würde damit einverstanden sein und diese Änderung genehmigen.
7ochem

Gute Idee, aber jemand hat bereits etwas hinzugefügt :)
Jon Holland

3

Ich bin kein großer Fan von Patches. Persönlich entferne ich alle Magento-Dateien aus ihren Verzeichnissen und lade dann die neue Version hoch (mithilfe eines Shell-Skripts). Alle im Laufe der Jahre installierten Dateien wie Module oder Themes sind immer noch da. Für die Datenbank mache ich einen Vergleich zwischen frisch installierten Versionen. Eine Möglichkeit besteht darin, die Spalten / Tabellen in der Datenbank zu erstellen oder zu entfernen, und die andere darin, Magento erneut zu installieren, indem Sie einfach den Dateinamen /app/etc/local.xml ändern. Ich bevorzuge den ersten.

Wenn Sie die Datenbankstruktur nicht auf Version 1.9.3.0 ändern, werden einige Fehler angezeigt, oder Sie können den Administrationsbereich nicht laden. Wenn jemand an Vergleichen für Magento-Verzeichnisse und -Datenbanken zwischen Magento CE 1.9.2.4 und 1.9.3.0 interessiert ist, laden Sie die Datei einfach hier herunter:

Magento-Vergleich: Versionen 1.9.2.4 - 1.9.3.0

Es gibt zwei HTML-Dateien mit sehr schönen visuellen Ergebnissen.

Ich habe heute 4 Läden mit meiner Methode aktualisiert, anstatt sie zu patchen. Alle laufen ohne Probleme.


Das ist schön, wenn Sie auf der neuesten Version sind und es eine neue Version für den Patch gibt, wie es bei 1.9.2.2, 1.9.2.3 und 1.9.2.4 der Fall war - für diesen Patch gab es jedoch keine neue Version 1.9.2.5 . Version 1.9.3.0 enthält eine Reihe zusätzlicher Änderungen, die nicht sicherheitsrelevant sind.
Fabian Schmengler

Mit meiner Methode erhielt ich zwei in einem, Sicherheitsupdates und neue Funktionen. Das einzige Problem ist, dass Sie verstehen müssen, was zwischen den Releases im Dateisystem und in der Datenbank passiert. Es ist keine große Sache, wenn Sie wissen, was Sie tun. Und Sie haben eine bessere Kontrolle. Ich mache diese Methode seit Version 1.7.
ADDISON74

3

Bei den meisten Installationen von Magento CE hatte ich kein Glück (insgesamt 6). Verschiedene Versionen: 1.9.1, 1.9.0.1, 1.8.1.

Ich habe den korrekten entsprechenden 8788-Patch heruntergeladen. Ich habe dafür gesorgt, dass 1533 zurückgesetzt wird, falls zutreffend.

Ich erhalte die folgenden wichtigen bemerkenswerten Ausgaben, die fragwürdig sind:

Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

...

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.

... das Überprüfen der Datei app / code / core / Mage / Adminhtml / controller / IndexController.php Hunk # 1 war bei 373 erfolgreich (Versatz -19 Zeilen). ...

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.ph

Dasselbe wie oben für: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php Und sagt, diese Kerle werden ignoriert.

Hinweis: In meinem Verzeichnis Unserialized / Reader ist nichts enthalten. Komplett leer. hinweis: die curl.php ist im downloader dir. Nicht umbenannt. Es wird beendet, aber die SWF-Dateien werden nicht entfernt. Ich sehe den angewendeten Patch nicht in der Liste "applied.patches.list"

Macht keinen Sinn.


Ok .. alles herausgefunden. Muss auf jeden Fall ALLE alten Patches durcharbeiten, um. Ich hatte ein paar ältere Patches, die nicht angewendet worden waren. Sobald ich diese runtergezogen und auf der ganzen Linie angewendet hatte, begannen die Dinge erfolgreich zu flicken. Allerdings stellte ich fest, dass ich immer, wenn ich einen großen Fehler in einer Datei für JEDEN Patch bekam, in den Patch gehen musste, um herauszufinden, was er zu ersetzen versuchte, und dies manuell in meiner Magento-Installation zu tun. DANN entfernen Sie diese "diff" -Linien aus dem Patch und führen Sie sie erneut aus. Grundsätzlich sollten Sie jedes Mal, wenn Sie einen großen Fehler sehen, in den Patch gehen und sehen, was er versucht, +/- daraus zu machen, und es dann selbst tun.
Rich Yessian

3

Ich habe heute ungefähr 10 Websites gepatcht, und auf jeder Site, bei der der SUPEE-8788-Patch fehlgeschlagen ist, fehlte der SUPEE-6788 .

Dies führte (Beispiel) zu folgendem Fehler:

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.php

Nach der Installation von SUPEE-6788 wurde der SUPEE-8788 korrekt gepatcht.


3

Wenn Sie Hunk #1 failedbei xxx Fehler bekommen, ist dies, was ich getan habe

Ich habe bekommen Hunk #1 failed at 373. Error !! nach der linie

Überprüfung des Datei-Downloaders / lib / Mage / HTTP / Client / Curl.php

Also überprüfte ich die Curl.phpDatei und stellte fest, dass ich die Datei zuvor geändert hatte (kommentierte eine Zeile). Ich habe die ursprüngliche Datei wiederhergestellt und den Patch erneut ausgeführt. Dann war der Patch erfolgreich. ;).

Dann habe ich überprüft:

/app/etc/applied.patches.list & alles scheint gut zu sein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.