Chi utilizza correntemente una delle versioni Magento Community avrà sicuramente notato, subito dopo il login nella seziona amministrativa, un messaggio di livello critico che recita più o meno così:


“Download and install Magento critical security patches now.”


oppure


"October 27, 2015: New Magento Security Patch (SUPEE-6788) – Install Immediately"


Il messaggio in questione non è assolutamente da sottovalutare se non si vuole incorrere in problemi piuttosto gravi come invio di spam dal proprio server, improvviso maintenance mode di magento, installazione di script malevoli, fino alla violazione della base dati (clienti, ordini...) . Dalle statistiche ufficiali di google, oltre 7000 siti sono già stati messi in blacklist nelle ricerche, con un danno enorme in termini di mancate vendite e perdite di posizioni nell'indicizzazione.
L'applicazione della patch richiede l'accesso tramite ssh sul proprio server. Spieghiamo qui una veloce procedura su come caricare ed eseguire la patch in maniera sicura sul proprio sito magento.

TUTTI I NOSTRI CLIENTI BENEFICIANO DELL'APPLICAZIONE DELLE PATCH IMMEDIATAMENTE E SENZA DOVER RICHIEDERE SUPPORTO TECNICO

Per chi non è attualmente nostro cliente e necessità di un intervento professionale, è possibile richiedere l'installazione delle patch con il nostro servizio di

 

 

 

Installazione Patch Sicurezza Magento

 

Installazione Patch sicurezza Magento

 

Download della patch adatta alla propria versione

 

Per prima cosa bisogna individuare la patch adatta alla propria versione di magento. Ovviamente basta entrare in admin e nel footer potremo visualizzare la nostra versione. Si deve quindi procedere al download sul sito ufficiale

https://www.magentocommerce.com/products/downloads/magento/

la patch è contrassegnata dalla sigla SUPEE-5344 e dal menu a tendina selezioneremo la versione corretta per la nostra installazione.

Una volta eseguito il download avremo un singolo file con estensione sh ovvero uno script della shell unix che eseguirà una serie di operazioni su alcuni file fondamentali del core di magento.

Non entreremo nei dettagli delle modifiche applicate in quanto è un argomento specifico per gli sviluppatori, ma andremo dritti alle operazioni, o meglio ai comandi da eseguire sulla shell del proprio sito per rendere sicuro il proprio sito magento. Andiamo per step.

 

 

1. Caricare sul sito il file sh

 

Questa operazione può essere eseguita con un normalissimo client ftp, tipo filezilla o winscp, l'importare è copiare il file direttamente sulla root di magento

 

2. Entrare sul proprio server via ssh

 

Per gli utenti che utilizzano linux sul proprio pc l'operazione dovrebbe essere già nota, si può usare il client ssh direttamente dal terminale. Per gli utenti che usano windows è disponibile il famosissimo client “putty” per aprire una sessione ssh sul proprio server.

Ovviamente in entrambi i casi è necessario avere le credenziali per l'accesso via ssh, possibilmente con utente sudoer per passare ad utente root una volta collegati.

 

 

3. Eseguire l backup del sito

 

Questa operazione è piuttosto veloce via ssh se non abbiamo un sito piuttosto voluminoso. In ogni caso consigliamo di svuotare le cache di magento con alcuni semplici comandi

rm -Rf var/cache/*

questo comando rimuove le cache principali di magento

 

rm -Rf var/session/*

questo comando rimuove le sessioni utente: prima di eseguirlo è opportuno controllare lato admin se qualche utente è loggato o è nella fase di checkout per non arrecare disagi. Può anche essere tralasciato se il sito non è in un “ora di punta”.

 

rm -Rf media/catalog/product/cache/*

questo comando rimuove tutti i file cache delle immagini. E' importante specialmente nel caso in cui il vostro sito abbia migliaia di prodotti a catalogo, accorcerà di molto le operazioni di backup.

 

Adesso procediamo all'archiviazione della root di magento. Nel nostro caso, utilizzando il pannello di controllo Plesk sui nostri server, di norma la dir root di magento è httpdocs, quindi:

 

tar -cvf httpdocs.bak.tar httpdocs

 

vedremo scorrere sul terminale tutti i file che compongono la root.

Al termine, il file httpdocs.bak.tar conterrà tutta la nostra directory root.

 

Adesso procediamo con il backup del database. Utilizzeremo l'utility mysqldump. Il comando specifico è

mysqldump -u utentedb -p nomedatabase > dump_magento.sql

 

dove utentedb e nomedatabase sono quelli configurati all'interno del file

app/etc/local.xml

del nostro sito.

Attenzione perché nel caso in cui l'host del nostro database fosse diverso da localhost dovremo aggiungere l'opzione

-h host

al comando.

Una volta terminata l'esecuzione del comando mysqldump avremo un file “dump_magento.sql” in cui sarà contenuto tutto il nostro db.

 

 

 

4. Esecuzione della patch

 

A questo punto siamo finalmente pronti per applicare la patch.

 

Per prima cosa cambieremo i permessi al file sh. Per la versione 1.9 ad esempio il file sarà

PATCH_SUPEE-5344_CE_1.8.0.0_v1-2015-02-10-08-10-38.sh

 

dovremo quindi eseguire un

 

chmod 755 PATCH_SUPEE-5344_CE_1.8.0.0_v1-2015-02-10-08-10-38.sh

 

per renderlo eseguibile.

Lanciamo la patch con il comando

 

./PATCH_SUPEE-5344_CE_1.8.0.0_v1-2015-02-10-08-10-38.sh

 

occhio al ./ iniziale.

Se il comando risponde con

Tool(s) "patch" is(are) missed, please install it(them).

 

Allora la cosa si fa complicata. Innanzitutto dobbiamo sapere se il server unix usa yum o apt-get per la gestione dei pacchetti e degli aggiornamenti.

Nel primo caso dovremo eseguire il comando

sudo yum install patch

nel secondo

sudo apt-get install patch

 

Il sistema ci chiederà se vogliamo installare il pacchetto “patch”. Installato patch proseguiremo con lo stesso comando fatto in precedenza:

 

./PATCH_SUPEE-5344_CE_1.8.0.0_v1-2015-02-10-08-10-38.sh

 

la risposta del prompt dovrebbe essere

 

Checking if patch can be applied/reverted successfully...

Patch was applied/reverted successfully.

 

La vostra patch è stata applicata con successo, potete rimuovere il messaggio terroristico dalla vostra admin marcandolo come letto nella sezione Sistema > Notifiche.

 

E' vivamente consigliato effettuare un test di acquisto sul proprio sito, in alcuni casi infatti abbiamo riscontrato problemi con la classe del core CC.php che gestisce i metodi di pagamento on line. In questo caso potrebbe essere necessario ripristinare il file originale dal nostro backup.