Patch di sicurezza SUPEE-8788 - Possibili problemi?


108

L'ultima patch di sicurezza Magento 1 SUPEE-8788 contiene 17 aggiornamenti APPSEC , quindi è molto importante applicarla il prima possibile. D'altra parte, ci sono molte potenziali interruzioni di compatibilità con le versioni precedenti e, data la cronologia delle patch nell'ultimo anno, non la applicherei con noncuranza.

La cosa buona è che questa volta non ci sono modelli di frontend coinvolti, quindi sembra che non abbiamo bisogno di patchare tutti i nostri temi. Questo è vero solo per Magento 1.8 o versioni successive.

Tuttavia: hai riscontrato problemi di compatibilità o bug dopo aver applicato la patch?


6
"non ci sono modelli di frontend coinvolti" - non è corretto per le versioni precedenti di Magento. Ad esempio la patch 1.7.0.2 modifica 9 file modello frontend / base / default.
Kristof a Fooman il

magento.stackexchange.com/questions/140571/… ha ingannato questo? Forse raggruppa tutte le informazioni qui ...
7

2
Per chiunque abbia problemi con gli aggiornamenti .swf della patch, ho semplicemente rimosso le righe 5951-9818 dalla patch e rimosso manualmente i file .swf /skin/adminhtml/default/default/media- dato che è comunque tutto ciò che la patch stava facendo.
Liam McArthur,

non so perché ma dopo l'installazione di 8788 su 1.8.0.0, la patch 7405 riporta NON installata. mentre v1 e v1.1 erano precedentemente installati
MagenX

2
@srinivas hai rimosso la cartella multimediale da questo percorso skin / adminhtml / default / default?
Priya Ponnusamy,

Risposte:


107

Note importanti

Si noti che 1.9.3 è diverso da 1.9.2.4 + SUPEE-8788. Ecco la differenza tra i due: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

Aggiornamento del 14 ottobre: ​​è stata rilasciata la v2 della patch (vedi sotto) A partire dal 13 ottobre, le patch da 1.5.xa 1.8.x sono state rimosse dal sito Web Magento a causa dell'incompatibilità con le patch precedenti (vedere sotto):

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

V3 della patch

Questa nuova versione è solo per Magento EE 1.13.0.x

Applica il V3:

  • ripristina SUPEE 1533 (se installato)
  • installa SUPEE 3941 (se non installato)
  • installa SUPEE 8788 v3

V2 della patch

Applica il V2:

  • ripristina SUPEE 8788 v1
  • ripristina SUPEE 1533 (se installato)
  • installa SUPEE 3941 (se non installato)
  • installa SUPEE 8788 v2

DemacMedia ha sviluppato un utile script bash per automatizzare il processo sopra, puoi trovarlo qui: https://github.com/DemacMedia/magento-SUPEE8788-patcher

Dettagli della patch

Dopo aver scavato nella patch ecco le parti interessanti (patch da 1.9.2.4):

  • Mage_Adminhtml_Block_Media_Uploaderè stato sostituito con Mage_Uploader_Block_Multiplequindi c'è un Mage_Uploadermodulo completo che elimina il supporto Flash . Il vecchio blocco è ora obsoleto ed estende il nuovo blocco.
  • Sempre per quanto riguarda l'uploader, il Mage_Downloadablemodulo è stato refactored per gestire il nuovo uploader non flash. Utilizza Mage_Uploader_Block_Singlecome blocco di caricamento invece di utilizzare i modelli.
  • A seguito di tale modifica, t egli file SWF skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfe skin/adminhtml/default/default/media/uploaderSingle.swfsono stati eliminati.
  • Il controller di eliminazione dell'indirizzo è ora protetto con la chiave del modulo direttamente tramite il getDeleteUrldaMage_Customer_Block_Address_Book
  • Il controller di rimozione degli elementi della lista dei desideri è ora protetto con la chiave del modulo tramite il getRemoveUrldaMage_Wishlist_Helper_Data
  • Il metodo di pagamento Paypal Express ora assicura che l'e-mail del cliente utilizzata esista in Magento al momento del check out e della registrazione di un nuovo utente. (capire: il nuovo utente viene creato prima dell'elaborazione del nuovo preventivo)
  • I metodi di pagamento che utilizzano il client cURL / HTTP ora sono stati CURLOPT_SSL_VERIFYHOSTimpostati su 2 (era 0 prima) e il CURLOPT_SSL_VERIFYPEERflag viene ora aggiunto alle chiamate cURL. Il flag Verifica peer può essere abilitato / disabilitato tramite la configurazione del metodo di pagamento tramite il menu a discesa Abilita verifica SSL.
  • Mage_Http_Client_Curlora è CURLOPT_SSL_VERIFYPEERimpostato su true (era falso prima) , attenzione se si dispone di un modulo personalizzato che lo utilizza.
  • Le dimensioni massime per le immagini dei prodotti sono ora configurabili nella configurazione. NB: può caricare un messaggio di errore divertente se carichi immagini troppo grandi: formato file non consentito in Magento 1.9.2.2 dopo il caricamento della patch

Problemi noti di SUPEE-8788 v2

Problemi noti di SUPEE-8788 v1

Problemi noti 1.9.3.0

Modifica: poiché l'elenco si sta allungando ed è praticamente fuori tema in questa risposta (in quanto non relativo a SUPEE-8788) puoi fare riferimento a questo post per l'elenco dei problemi noti 1.9.3.0: https: //magento.stackexchange. COM / a / 140826/2380


1
Grazie per l'elenco completo! Una domanda: sei sicuro che il problema della ricerca full text si applichi alla patch SUPEE-8788? Non riesco a trovare alcuna modifica relativa a questa funzionalità.
Aad Mathijssen,

1
@MageDev si prega di fare riferimento al terzo commento nella domanda;)
Raffaello al Pianismo digitale,

1
Se l'utilità di caricamento del prodotto non funziona dopo aver applicato correttamente la patch e si sta utilizzando il popolare plug-in CreareSEO, questa correzione dovrà essere applicata anche github.com/adampmoss/CreareSEO/pull/78
joesk

1
Ho notato che hai menzionato "Il metodo di pagamento Paypal Express ora assicura che l'e-mail del cliente utilizzata esista in Magento." Ciò significa che l'Ospite non può effettuare il checkot con PayPal Express? Devi essere un utente registrato? Mi sto perdendo qualcosa.
Icona

1
Alcune estensioni di terze parti che hanno utilizzato il vecchio uploader vengono interrotte dopo l'applicazione della patch. Ad esempio, "Magic 360" sta aggiungendo una scheda nelle schede dei dettagli del prodotto back-end. Dopo aver applicato le patch, non potrai vedere / modificare i dettagli del tuo prodotto. Ho notato questo problema allo sviluppatore dell'estensione su Magento connect ( magentocommerce.com/magento-connect/… ).
DarkCowboy,

29

Quando si applica la patch questo errore può verificarsi:

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

La patch 8788 contiene contenuto binario. Poiché Magento non fornisce alcun collegamento per il download diretto (odio questa politica da allora), devi scaricare la patch sul tuo computer e caricarla con un'applicazione di trasferimento file (come WinSCP su Windows) sul tuo server. WinSCP, ad esempio, verrà caricato in modalità TESTO (WinSCP gestisce i file * .sh come testo per impostazione predefinita).

Quindi la soluzione alternativa è quella di comprimere / tarare il file patch e decomprimere / decomprimere nuovamente sul server. et voilà.


Mi dispiace non ho avuto modo di rispondere a questa domanda

  1. Scarica la versione corretta di magento (ad esempio: CE 1.9.1.0)
  2. Sostituisci i seguenti file con il percorso scaricato

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

  1. Esegui la patch

Ha funzionato per me



10
Hai letto la domanda dei PO? fschmengler ha chiesto: "Tuttavia: hai riscontrato problemi di compatibilità o bug DOPO aver applicato la patch?" Ho riscontrato questo problema DURANTE l'applicazione della patch. Immagino che il senso di questo thread sia quello di documentare i possibili errori di SUPEE-8788. Ciò include - IMHO - anche i problemi con la patch stessa.
infabo,

Ha funzionato a meraviglia, grazie! È meglio farlo anche per TUTTE le future patch di Magento?
KiwisTasteGood

o hai appena dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb

Generalmente non era necessario prima e presumo che non sarà necessario in futuro. Immagino che i file SWF di uploader fossero gli unici binari forniti con Magento 1.x - ora non ci sono più. Quindi non mi aspetto problemi come questo in futuro.
infabo,

3
Quando si utilizza FileZilla per caricare il .shfile patch nella propria radice Magento, impostare il tipo di trasferimento su binaryprima di caricare il file patch. Riferimento
ForMat,

25

Se hai precedentemente applicato SUPEE-1533, la patch non funzionerà app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Ho risolto questo da ...

  1. Ripristina manualmente le modifiche introdotte a quel file da SUPEE-1533
  2. Applicare SUPEE-8788
  3. Reintrodurre manualmente le modifiche introdotte in quel file da SUPEE-1533

La rimozione della modifica da SUPEE-8788 è pericolosa perché il file patch contiene dati binari e il salvataggio in un editor può causare problemi (un altro problema).


A quanto ho capito hai ripristinato la patch originale del 1533, installato SUPEE 8788 e poi di nuovo installato il 1533 ?? Ho capito bene?
Icona

Ho anche problemi con FAILED HUNK su 28 app / design / frontend / base / default / template / review / form.phtml
Icona

9
Mi chiedo perché, quando ci prendiamo il tempo di applicare correttamente le patch incrementali ufficiali, veniamo penalizzati per questo, dovendo effettuare correzioni manuali quando le patch non funzionano quando sono state applicate patch fornite in precedenza. Un approccio molto strano.
Jon Holland,

1
La maggior parte delle versioni precedenti alla 1.9 su cui è installato SUPEE 1533 non può installare correttamente la patch. SUPEE 8788 non è compatibile con 1533
Icona

2
@JonHolland Perché, beh, è ​​Magento.
Agop,

25

Ecco un riassunto di ciò che io (e altri) abbiamo riscontrato finora, sto cercando di mantenerlo ordinato, sentiti libero di aggiungere o collegare tutto ciò che manca, il post è un Wiki della comunità:

Motivi della patch non riuscita

Se viene visualizzato il messaggio "ERRORE: impossibile applicare / ripristinare la patch", cercare "Hunk # 1 FAILED" nei messaggi di registro per verificare a quale file non è riuscita la patch.

  • Apparentemente v2 della patch per Magento 1.7 si aspetta che SUPEE-3941 sia presente anche se esiste solo per Magento 1.8 e 1.9 . Se sei su Magento 1.7 e vedi errori relativi ai file in downloader, scarica SUPEE-3941 per 1.8 e applicalo su 1.7, dovrebbe funzionare. Vedere il thread dei commenti qui: problema della patch di sicurezza SUPEE 8788
  • Sulle versioni di Magento a cui è stato applicato SUPEE-1533 in precedenza, la patch non funziona app/code/core/Mage/Adminhtml/controllers/DashboardController.phpperché il file è interessato da entrambe le patch e SUPEE-8788 (in modo errato!) Presuppone che sia presente la versione senza patch. Questo è ancora vero con la versione 2 della patch! La versione 2 include le modifiche da SUPEE-1533, quindi se è stato installato in precedenza, è necessario ripristinarlo, ma non è necessario applicarlo nuovamente in seguito.

  • Se hai eliminato o rinominato la directory "downloader", la patch fallirà perché corregge un file all'interno del downloader. La soluzione più semplice è ripristinare la directory del downloader originale, applicare la patch, quindi eliminare nuovamente la directory. In alternativa, puoi anche rimuovere le istruzioni per downloader/lib/Mage/HTTP/Client/Curl.phpdalla patch.

  • Altri messaggi "Hunk FAILED" sono generalmente dovuti a cambiamenti nei file core o mancate patch precedenti. Assicurati che tutte le patch precedenti per la tua versione di Magento siano installate e non hai apportato modifiche ai file core.

  • Un altro problema comune è che la patch non riesce a eliminare i .swffile a causa del loro contenuto binario. L'errore sarà simile al seguente:

    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
    

    o così

    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:
    --------------------------
    

    o in questo modo:

    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.
    

    Le possibili soluzioni sono fornite in questa risposta da @infabo. Scaricare la patch direttamente sul sistema in cui voglio applicarla, usando l'arricciatura come spiegato in https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e ha sempre funzionato per me, tranne quando l'ho provato su Cygwin

Modo avanzato per gestire le patch non riuscite: @PeterOCallaghan ha suggerito di commentare la linea a secco e gestire manualmente i file * .rej. In questo modo la patch può essere parzialmente applicata e se non riesce a eliminare i file swf, è possibile farlo manualmente. O se non riesce ad aggiornare i file downloaderperché hai eliminato quella directory, puoi semplicemente ignorarlo.

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(o un nome file simile) cambia _apply_revert_patch dry-runin modo che appaia #_apply_revert_patch dry-run

  2. eseguire la patch emettendo ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

Quello patch i tuoi file

  1. Commenta _apply_revert_patcha#_apply_revert_patch

  2. eseguire nuovamente la patch per aggiungere la app/etc/app/etc/applied.patches.listvoce

  3. grep per tutti i file .rej con

    git status | grep *.rej

  4. lavorare manualmente in quei cambiamenti

Problemi dopo l'applicazione della patch

Chiavi del modulo

  • Per le versioni Magento precedenti alla 1.8 ci sono cambiamenti nei frontend/base/defaulttemplate. Assicurati di applicare manualmente le stesse modifiche al tema se sovrascrive questi file

    Più specificamente, è stata aggiunta una chiave del modulo per azioni frontend come:

    • Rimozione di un elemento dalla lista dei desideri
    • Eliminazione dell'indirizzo di un cliente dalla vista del negozio
    • Aggiornamento di un articolo preventivo nel carrello

    Vedi questa risposta di @LukeRogers se riscontri problemi con queste azioni.

Uploader personalizzato

Unirgy_Rapidflow e altre estensioni con moduli di caricamento personalizzati non funzionano più.

Guarda questa risposta di @mpchadwick e commenta di @lloiacono

L'ho risolto sostituendo $this->getUploader()->getConfig()con $this->getUploader()->getUploaderConfig()inUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

Per scoprire se una delle tue estensioni lo utilizza, puoi eseguire quanto segue sulla riga di comando:

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

Messaggi di errore riportati

  • Errore irreversibile PHP: chiamata alla funzione indefinita hash_equals ()

    succede se siete su una versione di PHP prima di 5.6 e sovrascrivere code/core/Mage/core/functions.phpin code/local/Mage/core/functions.php(che potrebbe essere il caso se si utilizza le estensioni Fishpig). Vedi questa risposta di @ClaudiuCreanga


Problemi risolti nella v2 della patch

Se riscontri uno di questi problemi, probabilmente usi la versione 1 della patch ("v1" nel nome del file). Scarica di nuovo la patch per ottenere "v2" che risolve questi problemi:

  • Si è verificato un problema di compatibilità con SUPEE-3941 e downloader/lib/Mage/HTTP/Client/Curl.php

  • 'Eccezione' con il messaggio 'Tipo di dati non supportato N' in /lib/Unserialize/Reader/ArrValue.php

  • La patch per EE 1.14.2.0 conteneva accidentalmente un nuovo file test_oauth.php che dovresti eliminare! Vedi questa risposta di @MatthiasZeis


La chiave del modulo aggiunta durante l'aggiornamento dell'elemento preventivo nel carrello non è qualcosa che è stato aggiunto con SUPEE-8788 (non almeno dall'1.9.2.4)
Raffaello al Pianismo digitale,

@RaphaelatDigitalPianism almeno nella patch 1.13.0.1 aggiunge la convalida della chiave del modulo a Mage_Checkout_CartController::updatePostAction, potenzialmente anche altre versioni di patch.
Luke Rodgers,

23

Se ottieni

Call to undefined function hash_equals() error

anche se la tua patch ha avuto successo, allora può significare che hai copiato funzioni.php app/code/local/Mage/Core.

Dovrai inserire anche quella funzione perché quel file sovrascrive quello principale.

Quindi inserire app/code/local/Mage/Core/functions.phpalla fine:

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
Con la mano so che Fishpig ti richiede di farlo. Quindi se hai installato questo sarà un problema per te.
mpchadwick,

1
Nota: ero confuso ed è MWI che ti chiede di sovrascrivere funzioni.php, non Fishpig mwi-plugin.com/documentation/installation
mpchadwick

18

In PATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.sh, un file test_oauth.phpviene creato nella directory principale di Magento. Ti consigliamo di eliminarlo (o almeno non distribuirlo in produzione) perché potrebbe esporre una traccia di stack di eccezioni completa alla persona che chiama l'URL https: //thedomain.tld/test_oauth.php .


Bella cattura, Matthias! Sarebbe in qualche modo una cattiva forma per distribuire 17 patch APPSEC e aprire un altro vettore allo stesso tempo. Lo hai già segnalato a Magento?
Bryan 'BJ' Hoffpauir Jr.,

Ho aperto un ticket su questo con il supporto Magento, come sono sicuro che altri abbiano a questo punto. Non hanno sentito parlare di una versione v2 della patch, ma dovrebbero essere consapevoli del problema.
quasiobject,

1
Ci sarà un v2, dovrebbe essere pubblicato molto presto. Sì, l'ho segnalato quando ho pubblicato qui.
Matthias Zeis,

1
Sembra che sia stato corretto ora
Erfan,

18

Questo vale per le versioni 1.7 MAGENTO


Se si esegue la versione 1.7.0.2 2 di SUPEE 8788 non funzionerà sulla linea 372 tentando di applicare le modifiche a Curl.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

Le istruzioni dicono che dovremmo ripristinare SUPEE-1533 e installare SUPEE-3941

PROBLEMA: SUPEE-3941 è disponibile solo per Magento CE 1.8-1.9. Puoi provare ad applicarlo per 1.7 e si applicherà. pensosviluppatori di patch Magento dovrebbe rilasciare una versione 3 di SUPEE-8788 per coloro che eseguono magento sotto 1.8 o creare una patch SUPEE-3941 aggiuntiva progettata per la versione sotto 1.8.

A proposito della versione 1 di SUPEE-8788 non si è verificato l' Curl.phperrore in 1.7.0.2 (l'ho testato su molte installazioni)

Suggerimento: se alla fine si riscontrano errori .swf, assicurarsi di comprimere la patch, caricarla sul server e decomprimerla. L'errore WF sparirà.

AGGIORNARE:

Magento ha detto che sostanzialmente va bene installare la patch SUPEE-3941 su una versione Magento 1.7.0.2 per evitare errori sull'applicazione di SUPEE-8788


Ci siamo arresi
datasn.io

@ kavoir.com ottieni anche lo stesso errore CURL.PHP durante l'installazione su 1.7.0.2 ??
Icona

1
Lo stesso problema qui installa 8788 V2 su 1.7.0.2, sebbene interessante otteniamo lo stesso errore curl.php sui nostri nuovi siti della versione 1.9.2.1 che non hanno SUPEE-3941 disponibile. il ripristino del 1533 non aiuta neanche questo problema
Jon Holland,

@JonHolland Ho scritto al team di Magento ... Spero che risponderanno
Icona

2
Ho ricevuto una risposta dal leader della comunità magento, in pratica è okey installare la patch 3941 sulla versione 1.7.0.2 ..
Icona

15

Original DashboardController.php (1.7.0.2- Non in cache, fresco da magento)

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

1533 DashboardController.php con patch contiene la seguente modifica

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

La patch 8788 apporta la seguente modifica in DashboardController.php

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

Come puoi vedere 8788 ha una modifica modificata rispetto al 1533, NON sono sicuro quale sia l'ideale per modificare il file come suggerisce mpchadwick, sostituendo manualmente la modifica 8788 con 1533 dopo aver installato 8788. In sostanza rimuovendo la modifica 8788.

Eventuali suggerimenti?


2
IMO Il risultato finale desiderato è un mix dei due. Dovrebbe essere json_decode, ma dovrebbe usare hash_equals anziché ==. Questo impedisce un attacco temporale (che sarebbe estremamente difficile da sfruttare).
Peter O'Callaghan,

Accetto con @Peter. Se si utilizza Git, ripristinare il commit per SUPEE-1533, applicare la nuova patch, eseguire il commit, quindi ripristinare nuovamente il commit di ripristino. Il conflitto DashboardController.phpdovrebbe essere risolto automaticamente allora.
Fabian Schmengler,

1
Potresti fornire un codice per DashboardController.php che dovremmo sostituire dopo aver installato 8788? Non sono esattamente sicuro di cosa modificare, come ho accennato in precedenza, le linee di patchd 1533 e 8788 sembrano diverse. Potresti fornire l'aspetto di una versione modificata manualmente?
Icona

È come dovrebbe apparire il codice 8788 dopo la modifica manuale con aggiornamento 1533? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData)))) {
Icona

1
Nota relativa al ripristino dei commit due volte: potresti essere in grado di utilizzare git revert -n 123456abe git cherry-pick -n 123456abannullare temporaneamente SUPEE-1533 senza creare ulteriori commit.
Matthias Zeis,

14

Metà tentato di contrassegnare questo post come principalmente basato sull'opinione o senza una risposta chiara;)

Le chiavi del modulo sono state aggiunte a un paio di controller, il numero varia a seconda della versione di Magento.

Se riscontri problemi

  • Rimozione di un elemento dalla lista dei desideri
  • Eliminazione dell'indirizzo di un cliente dalla vista del negozio
  • Aggiornamento di un articolo preventivo nel carrello

Dovrai controllare il tuo .phtmlfile di temi e assicurarti di inserire POSTil parametro chiave del modulo in modo che passi il controllo nelle azioni del controller come:

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

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

Questi problemi hanno fatto scattare molte persone nelle patch precedenti, i temi frontend personalizzati con modelli sovrascritti si perdono facilmente quando si applicano le patch.

Tasti Modulo sono spesso aggiunti al .phtmlmodello contenente il modulo come un extra inputcome

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

Esiste un elenco completo di forme che questo influenza? Quindi posso testarli e sistemarli TUTTI una volta per tutte. Non desiderare disfunzioni segretamente stupide come questa che infastidiscono i clienti o riducono il tasso di conversione.
datasn.io

Se un SUPEE 8788 si installa perfettamente su 1.7 e apporta modifiche in (app / design / frontend / base / default / template .....). Ma nonostante la lista dei desideri di frontend del sito Web di modifica, aggiungi i pulsanti di rimozione funzionano tutti perfettamente. Dobbiamo ancora patchare manualmente i file dei temi? Oppure, poiché la patch lunga non rompe nulla sul frontend possiamo lasciare così com'è?
Icona

11

Ho incontrato lo stesso problema in swf in 1.9.2.4.

Fox risolto - Seguire i passaggi seguenti.

Passaggio 1. Scaricare il file SSH della patch di sicurezza 8788 a questo collegamento: - https://magento.com/tech-resources/downloads/magento/

Passaggio 2. Dopo aver scaricato la patch di sicurezza 8788 del file SSH, inserire una cartella e creare il file zip della stessa cartella.

Passaggio 3. Caricare la cartella Zip nella cartella magento principale e decomprimere tramite SSH Putty.

Passaggio 4. Eseguire la patch: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Nota: il file patch contiene interi file binari in formato testo. Ecco perché quando carichi il file SSH 8788 della patch di sicurezza senza file zip, lo stesso file verrà danneggiato. *


10

Dopo aver appilato SUPEE-8788 non sono più riuscito a caricare i profili "Importa" utilizzando Unirgy_RapidFlow 2.0.0.18, ottenendo un errore 500 (nulla nei registri Apache o HTTPD).

Sono ancora in fase di debug e lavoro con Unirgy per risolvere, ma sembra che il blocco di uploader stia causando il problema ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload).

La patch ha introdotto diverse modifiche al Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Contentgenitore.

Oltre a uRapidFlow, altri moduli di terze parti che consentono il caricamento di file potrebbero rompersi a causa di SUPEE-8788.


hai già trovato una soluzione per questo? Ho risolto sostituendo $ this-> getUploader () -> getConfig () con $ this-> getUploader () -> getUploaderConfig () in Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

Bene adesso. Anche Unirgy sembra averlo corretto in 2.0.0.23. secure.unirgy.com/release-notes.php?m=1#RapidFlow Sto lavorando con un cliente per acquistare ulteriori aggiornamenti e non sono stato in grado di convalidare.
mpchadwick,

esegui questo sul tuo docroot per trovare quali altri file devono essere riparati: grep -r 'getUploader () -> getConfig ()' ./
lloiacono

8

Ho ricevuto il seguente messaggio durante l'esecuzione dello script di patch:

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

Penso che ciò sia dovuto al fatto che ho rinominato la cartella "downloader", seguendo i consigli di https://www.magereport.com .

Ho rinominato temporaneamente la cartella in "downloader", ho applicato la patch correttamente e poi l'ho rinominata con il suo nome segreto.


8

Anche la patch su 1.9.0.0 ha esito negativo (probabilmente 1.8.0.0 fino alla 1.9.0.1 interessata) a causa di SUPEE-3941. 3941 patch downloader / lib / Mage / HTTP / Client / Curl.php e ora l'8788 fallisce.

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

Soluzione alternativa per 1.9.0.1 di seguito. Le modifiche sono troppo approfondite, forse è necessario regolare la patch 8788 stessa.

modifica: modifica la patch, cerca Curl.php e sostituisci

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 

con

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

Ho personalizzato i file patch in modo che funzionino con tutte le versioni di Magento dopo aver installato tutte le patch precedenti: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen - MageHost,

8

Ecco cosa sto ottenendo

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

Ottenere lo stesso errore esatto in un'installazione. Mi piacerebbe sapere se hai capito qualcosa.
TunaMaxx,

No, sto ancora aspettando che qualcun altro lo
capisca

2
Vedi magento.stackexchange.com/a/73957/9276 . Se il tuo file Curl.php ha questa correzione, annulla quella modifica (ripristina la riga su CURLOPT_SSL_CIPHER_LIST / 'TLSv1'), applica la patch e ripeti la modifica.
Joe,

Grazie @Joe. Stavo tornando qui per pubblicare le stesse informazioni. Mi hai battuto sul tempo! Questo è quello che ottengo per andare a dormire. :)
TunaMaxx,

Aveva lo stesso problema, questo lo ha risolto. Grazie!
dafyddPrys,

8

Sembra che Magento rilascerà la versione aggiornata di SUPEE 8788, per correggere la compatibilità con SUPEE 1533. Non sono sicuro che sia una buona idea applicare le correzioni manualmente in questo momento. Le modifiche manuali possono compromettere i futuri aggiornamenti delle patch. Mi piacerebbe sentire i tuoi pensieri.

È stato confermato dal Magento Community Manager. Dal 13 ottobre alle 15:00 EST .. tutte le patch per le versioni inferiori alla 1.9 vengono eliminate dall'elenco di download https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 Vedi post: https://community.magento.com/t5 / Sicurezza-Patch / SUPEE-8788-E-SUPEE-1533-compatibile-Hunk-error / mp / 50514 / luce / falso # M1805


1
Se la patch aggiornata ha esattamente lo stesso risultato delle nostre correzioni manuali e spero che sia così, allora non vedo un problema. La patch aggiornata non sarà necessaria e le patch future non vedranno alcuna differenza.
Fabian Schmengler,

1
@fschmengler è abbastanza simile all'incompatibilità di PHP 5.5 per SUPEE-7405 IMO. La patch rifletterà la correzione manuale.
Raffaello al Pianismo digitale,

1
@fschmengler Per quanto ne so, Magento rilascerà di nuovo esattamente la stessa patch con correzioni. Credo sia meglio rimuovere la vecchia patch (auto-modificata) e installarne una nuova (probabilmente rilasciata il giorno successivo. Entro domani dovremmo avere un aggiornamento. Grazie per l'aiuto!
Icona

Non sto dubitando del valore di questo contributo, ma attenendosi allo stile di domande e risposte, questa risposta non mi sembra una risposta, più di un aggiornamento che @fschmengler potrebbe aggiungere alla sua domanda originale (o puoi aggiungerlo alla Community Wiki answer).
7

8

Stiamo ricevendo segnalazioni dei seguenti nuovi problemi che non vedo in altri post:

  • Eccezione nelle nuove versioni in alcuni casi: la chiamata al metodo addCrumbs () (nel caso in cui getStoreConfig (web / default / show_cms_breadcrumbs) non sia definita). Non dovrebbe influire sulla patch, solo la versione 1.9.3 / 1.14.3

'Eccezione' con il messaggio 'Tipo di dati non supportato N' in /lib/Unserialize/Reader/ArrValue.php in 1.9.1.0 e possibilmente versioni precedenti quando viene applicata la patch. risolto nella patch versione 2.

Al momento non esistono soluzioni alternative note per tali problemi. Stiamo lavorando per risolverli in una nuova versione di patch.


Possibile correzione dell'errore di tipo N di dati non supportato gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Raphael at Digital Pianism

Qualche idea su come superare l'errore Curl.php durante l'installazione di SUPEE 8788 nelle versioni 1.6 e 1.7?
Icona

8

Uploader si interrompe quando si carica lo stesso file per campioni e collegamenti contemporaneamente per prodotti scaricabili. Si noti che ciò accade solo se si utilizza lo stesso file in entrambe le aree. (Funzionava correttamente prima della patch.)

Per riprodurre, modificare un prodotto scaricabile e fare clic sulla scheda Informazioni scaricabile :

  1. Apri la riga Samples della fisarmonica e cerca un file di esempio.
  2. Nella riga Collegamenti della fisarmonica, cercare un collegamento per il download
  3. Fai clic su Carica file nella sezione Collegamenti.

L'autore del caricamento carica il file di esempio anziché il file di collegamento scaricabile e il file cercato nella sezione collegamento scaricabile scompare.

Sono stato in grado di riprodurre questo su un'installazione vanilla, patchata 1.7.0.2 CE.


Si scopre che questo è il comportamento della sottostante libreria JS utilizzata per il caricamento: github.com/flowjs/flow.js/issues/76
Laura,

6

Sì, ho riscontrato altri problemi durante l'accesso, restituirà sempre questo:

Ho scoperto che è perché nella classe Enterprise_Pci_Model_Observer linea 165,

Invece di:

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

Questo risolverà:

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

Dal momento che non mi piace cambiare core (anche passare a locale), è meglio se Magento risolve questo problema o chiarisca questo. Al momento il mio sta creando nuove estensioni per estenderlo e creare una funzione per getPassword () (dal momento che voglio assicurarmi che tutti gli sviluppatori utilizzino la modalità sviluppatore su).


2
Dopo aver applicato il V2 della patch, sto riscontrando lo stesso problema di patch EE1.12. Sembra che questo file sia cambiato ad un certo punto tra 1.12 e 1.14 ma non come parte delle patch
Chris,

1
Abbiamo sollevato questo con Magento e hanno fornito un'ulteriore patch per risolvere il problema. Il cambiamento è identico a quello sopra.
Chris,

6

Modifica del file patch

Se qualcuno deve modificare il file patch, non dovresti farlo in un editor in quanto ciò spezzerà i file binari incapsulati nella patch.

Se hai una riga di comando a portata di mano, ad es. linux / * unix prova a usare l' sedutility per rimuovere linee specifiche.

Puntelli a @fooman per il suggerimento. Guarda la sua idea originale

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

Questo eliminerà inclusivamente le righe da 101 a 111.

Problemi di invio del modulo.

Se vedi il problema sopra menzionato puoi anche:

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

Per ulteriori informazioni, fare riferimento a questo post Che cos'è getBlockHtml ('formkey')?


4
<?=
Fai

@RaphaelatDigitalPianism hai ragione. Sebbene <?=sia abilitato di default nella maggior parte delle configurazioni php.ini alcuni host scelgono di disabilitarlo.
Sergei Filippov,

5

CE 1.6.2.0 e SUPEE-3941

Per applicare la patch di sicurezza SUPEE-8788 (versione 2), ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) si consiglia di applicare prima SUPEE-3941 .

Tuttavia, nella pagina di download della patch, non esiste alcuna patch SUPEE-3941 per CE 1.6.2.0. La patch è disponibile solo per CE 1.8 e 1.9.

Come accennato in questa discussione, sembra giusto applicare la patch SUPEE-3941 disponibile (per CE 1.8 e 1.9) su CE 1.7.

È anche possibile applicare SUPEE-3941 (per CE 1.8 e 1.9) su CE 1.6.2.0? Ho provato ad applicarlo su CE 1.6.2.0 e ho ottenuto il seguente errore:

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

Un po 'tardi, ma abbiamo riscontrato un problema nella patch SUPEE-8788 V2 che si applica almeno ai file patch per Magento 1.7.0.2 e 1.7.0.1. Probabilmente questo vale anche per tutte le versioni precedenti per le quali esiste una versione patch. La versione Magento dalla 1.8 in poi non è interessata in quanto la patch non cambia i modelli per quelli.

In dettaglio

Nella patch manca un formkey per il file app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

Senza di essa il login non funziona al checkout on-page (semplicemente non funziona senza errori).

fissare

Un formkey deve essere inserito come nella seguente patch:

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

Per il sito con patch 1533 basta sostituire la riga inferiore da 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) 

di:

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));

Fondamentalmente ha appena ripristinato il 1533 e ha lasciato 8788 lungo.


A quanto ho capito, l'8788 sostituisce le modifiche in DashboardController.php e le modifiche originali 1533 verranno eliminate?
Icona

2
Sì, lo scopo di 1533 in sostituzione di serialize () con json_encode () era di ridurre la possibilità di passare l'attacco ($ newHash == $ gaHash). Mentre 8788 aggiunge hash_equals () per lo stesso scopo
William Zhao,

Fantastico, stavo pensando di fare un po 'diversamente, sul mio sito di test ho caricato DashboardController.php pulito (file stock magento) e installato SUPEE 8788. Tuttavia, ho letto su questo forum e un signore menzionato per reintrodurre manualmente le modifiche 1533 su Supee 8988 file modificato. Cosa ne pensi del mio metodo?
Icona

Icona, guarda la mia diff sopra, a modo tuo devi cambiare la riga aggiornata da SUPEE 1533 in 'app / code / core / Mage / Adminhtml / Block / Dashboard / Graph.php' e se hai già SUPEE 1533 rattoppato. Altrimenti Graph.php genererà parametri in formato json e non sarai in grado di decodificarlo con unserialize ()
William Zhao,

4

L'acquisizione di Authorize.net viene interrotta dopo l'applicazione della patch. L'autorizzazione funziona correttamente, ma quando si acquisisce il pagamento per fatturare, viene visualizzato "Errore gateway: è richiesto il numero di carta di credito" . Il file di registro dei pagamenti mostra ora il x_typeparametro passa valore auth_capture, ma prima della patch passava prior_auth_captureche funzionava bene. Qualcuno ha riscontrato questo problema?

AGGIORNAMENTO: risolto il problema - Authorize.net non stava acquisendo


4

Ho patchato una copia di Magento 1.9.2.4 usando SSH con SUPEE-8788 Ho patchato un'altra copia di Magento 1.9.2.4 usando ftp con SUPEE-8788 Ho patchato una copia di Magento 1.9.1.0 usando SSH con SUPEE-8788 usato una nuova copia di magento 1.9.3.1

In tutti questi siti Web Magento con SUPEE-8788 ho riscontrato lo stesso problema (forse un bug della patch)

Utilizzando prodotti scaricabili e andando in Informazioni scaricabili-> Esempi quando provo ad aggiungere una nuova riga (una o più) facendo clic sulla "X" non riesco più a rimuovere la rigainserisci qui la descrizione dell'immagine

Non sono così esperto in Magento, sto cercando di trovare una soluzione. Se troverò che pubblicherò, se qualcuno di voi ha qualche soluzione, sarà molto molto utile per me

AGGIORNAMENTO : utilizzando Chrome inspector ho visto questo errore:inserisci qui la descrizione dell'immagine

******* HO TROVATO LA SOLUZIONE *******

Ho trascorso 2 giorni e spero che questo possa aiutare qualcun altro, questo è un bug in SUPEE-8788

Apri samples.phtml all'interno app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

Trova la funzione

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();
    }
},

e sostituirlo con

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();
    }
},

Questo risolverà il BUG


3

Applicato PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 sulla copia di prova del sito che esegue 1.9.2.1 e ha interrotto il checkout. Ripristina la patch e il checkout funziona di nuovo normalmente.

Quando si invia l'ordine, si torna al carrello invece che alla verifica. Penso che aspetterò la versione .1 prima di riprovare.


sembra che venga generata un'eccezione mentre l'ordine viene salvato, hai controllato i tuoi registri?
simonthesorcerer,

Sembra in questo modo ... Errore irreversibile PHP: classe 'Mage_Core_Helper_UnserializeArray' non trovata in ... / public_html / app / Mage.php sulla linea 547
Adam Lavery

@AdamLavery Vai a Var / cache ed elimina la cartella cache. Ottengo questo errore quando ripristino i cache in originale. È una cosa cache.
Icona

La nuova patch dovrebbe essere presto disponibile. Questo è un enorme aggiornamento di patch che non prevede errori ... Sì ... incrociamo le dita.
Icona

1
Ciò è probabilmente dovuto al fatto che mancava. app/code/core/Mage/Core/Helper/UnserializeArray.phpÈ stato aggiunto in SUPEE-6788, che potrebbe non essere stato installato. Sembra che SUPEE-8788 abbia una dipendenza non documentata da SUPEE-6788.
Tyler V.

3

La nuova e-mail nelle prime ore da Magento afferma che produrranno nuove versioni di patch per affrontare i problemi di compatibilità con SUPEE-1533 e SUPEE-3941. Quindi forse tieni i tuoi cavalli per un po '.

ENTERPRISE EDITION 1.14.3, COMMUNITY EDITION 1.9.3 e SUPEE-8788 Enterprise Edition 1.14.3 e Community Edition 1.9.3 offrono oltre 120 miglioramenti della qualità, oltre al supporto per PHP 5.6. Risolvono inoltre problemi critici di sicurezza, tra cui: ...

... La patch SUPEE-8788 risolve questi problemi di sicurezza nelle precedenti versioni di Magento. Sfortunatamente, abbiamo scoperto che le patch SUPEE-8788 per Community Edition 1.8 e versioni precedenti e Enterprise Edition 1.13 e versioni precedenti hanno esito negativo se un negozio ha precedentemente applicato patch di sicurezza SUPEE-1533 o SUPEE-3941. Stiamo lavorando per correggere questo problema e forniremo nuove patch nei prossimi 1-3 giorni. Fino ad allora, stiamo rimuovendo queste versioni della patch SUPEE-8788 dalla distribuzione ...

Tuttavia, sono preoccupato per il fatto che le mie versioni Magento attive rientrino tra la CE 1.9.3 che dicono funzionino e le nuove versioni in arrivo per V1.8 e precedenti. Li ho contattati, quindi aspetterò e vedrò cosa dicono.


Non proprio una "risposta" ma speriamo informazioni utili.
Jon Holland,

Ciao Jon, puoi anche modificare la domanda originale di @fschmengler e aggiungerla in fondo come AGGIORNAMENTO . Penso che starebbe bene con quello e approverebbe quella modifica.
7

Buona idea ma qualcuno ha già aggiunto qualcosa :)
Jon Holland

3

Non sono un grande fan del patching. Personalmente rimuovo tutti i file di Magento dalle loro directory, quindi carico la nuova versione (usando uno script di shell). Tutti i file installati negli anni come moduli o temi sono ancora lì. Per il database faccio un confronto tra le nuove versioni installate. Un modo è la creazione o la rimozione di colonne / tabelle nel database, l'altro modo è di reinstallare Magento semplicemente cambiando il nome del file /app/etc/local.xml. Preferisco il primo.

Se non si modifica la struttura del database alla versione 1.9.3.0, si otterranno alcuni errori o non è possibile caricare l'area di amministrazione. Se qualcuno è interessato ad alcuni confronti per directory e database Magento tra Magento CE 1.9.2.4 e 1.9.3.0 basta scaricare il file da qui:

Confronto Magento: versioni 1.9.2.4 - 1.9.3.0

Ci sono due file HTML con risultati visivi molto belli.

Oggi ho aggiornato 4 negozi usando il mio metodo invece di patch. Tutti sono in esecuzione senza problemi.


È bello se sei sulla versione più recente e c'è una nuova versione per la patch, come è stato il caso con 1.9.2.2, 1.9.2.3 e 1.9.2.4 - tuttavia per questa patch non è stata rilasciata una nuova versione 1.9.2.5 . La versione 1.9.3.0 contiene una serie di modifiche aggiuntive che non sono legate alla sicurezza.
Fabian Schmengler,

Con il mio metodo ho ottenuto due in uno, aggiornamenti di sicurezza e nuove funzionalità. L'unico problema è che devi capire cosa sta succedendo nel file system e nel database tra le versioni. Non è un grosso problema quando sai cosa stai facendo. E hai un controllo migliore. Sto facendo questo metodo dalla versione 1.7.
ADDISON74

3

Non avendo fortuna sulla maggior parte delle installazioni di Magento CE (6 in totale). Diverse versioni: 1.9.1, 1.9.0.1, 1.8.1.

Ho scaricato la patch 8788 corrispondente corretta. Mi sono assicurato di ripristinare il 1533 quando applicabile.

Ottengo i seguenti risultati chiave che sono discutibili:

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.

... il controllo del file app / code / core / Mage / Adminhtml / controller / IndexController.php Hunk # 1 è riuscito a 373 (offset -19 righe). ...

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

Come sopra per: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php E dice che questi hunk sono stati ignorati.

nota: non c'è nulla nella mia directory Unserialized / Reader. Completamente vuoto. nota: Curl.php è nella directory downloader. Non rinominato. Termina, ma non vedo i file SWF rimossi. Non vedo la patch applicata nell'elenco di application.patches.list

Non ha senso.


Ok .. capito tutto. Devo assolutamente lavorare con TUTTE le vecchie patch, in ordine. Avevo un paio di patch più vecchie che non erano state applicate. Una volta tirato giù quelli, e applicato sulla linea, le cose hanno iniziato a rattoppare con successo. Tuttavia, ho scoperto che ogni volta che ottenevo un errore di hunk su un file per QUALSIASI patch, dovevo andare nella patch e trovare ciò che stava cercando di sostituire e farlo manualmente nella mia installazione di Magento. POI rimuovi quelle linee "diff" dalla patch ed esegui nuovamente. Essenzialmente ogni volta che vedi un errore di hunk, vai nella patch e vedi cosa sta provando a +/- da esso, quindi fallo da solo.
Rich Yessian,

3

Oggi ho patchato circa 10 siti Web e ogni sito in cui la patch SUPEE-8788 ha fallito presentava il SUPEE-6788 MISSING .

Ciò ha comportato (esempio) il seguente errore:

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

Dopo aver installato SUPEE-6788, SUPEE-8788 è stato corretto correttamente.


3

Se stai ricevendo l' Hunk #1 failederrore xxx, questo è quello che ho fatto

Ho capito Hunk #1 failed at 373. Errore !! dopo la linea

controllo del downloader di file / lib / Mage / HTTP / Client / Curl.php

Quindi ho controllato il Curl.phpfile e ho scoperto che avevo modificato il file prima (commentato una riga). Ho ripristinato il file originale ed eseguito nuovamente la patch. Quindi la patch ha avuto successo. ;).

Quindi ho controllato:

/app/etc/applied.patches.list e tutto sembra a posto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.