Siamo giunti alla terza parte della guida dedicata alla sicurezza di Magento. Nelle precedenti lezioni hai compreso come mettere in atto delle semplici operazioni per aumentare l’affidabilità e la robustezza del tuo portale di e-commerce. Più volte nel corso della guida ho ripetuto quanto Magento sia un CMS tra i più sicuri in commercio, ma questo non basta per poter ritenere il proprio sito indenne dagli attacchi di hacker. Proseguiamo quindi con il mettere in pratica altri piccoli trucchi che ti permetteranno di mettere in sicurezza il portale Magento.
Consenti l’accesso alla cartella Admin di Magento solo a IP conosciuti
In Magento esiste un’opzione che consente di settare gli indirizzi IP che possono accedere al pannello di controllo. È una funzionalità molto importante da utilizzare, in quanto, restringendo il numero di persone che possono effettivamente avere accesso al pannello di amministrazione, aiuta ad aumentare la sicurezza. Tutti gli indirizzi IP che non sono contenuti nella lista, pur essendo a conoscenza dell’URL di back end, non possono in nessun modo avere accesso.
Per abilitare questa restrizione, è necessario in primo luogo modificare il file .htaccess. Scarica quindi il file sul tuo PC, utilizzando un client FTP, aprilo con un qualsiasi editor di testo e inserisci le seguenti righe di codice:
AuthName "Protected Area" AuthType Basic <Limit GET POST> order deny,allow deny from all allow from 192.168.xxx.xx allow from 168.121 </Limit>
La riga allow from 192.168.xxx.xx consentirà l’accesso al pannello Admin al PC con indirizzo specifico 192.168.xxx.xx, mentre la riga allow from 168.121 permetterà l’accesso a tutti gli indirizzi IP che iniziano con 168.121. E’ possibile inserire un numero illimitato di indirizzi IP.
La seconda operazione che devi compiere è quella di creare una cartella Admin all’interno della directory principale di Magento. A questo punto copia il file index.php di Magento all’interno di questa cartella, ma prima modifica i percorsi relativi a config.php e Mage.php in questo modo:
$compilerConfig = '../includes/config.php'; $mageFilename = '../app/Mage.php';
A questo punto devi indirizzare gli utenti del pannello di controllo a questa directory. Per far ciò, all’interno del file .htaccess inserisci questo codice:
Redirect permanent /index.php/{admin_path} /admin/index.php/{admin_path} Redirect 301 /index.php/{admin_path} /admin/index.php/{admin_path}
Dove admin_path indica il percorso amministrativo che abbiamo scelto al passo due nella prima parte della guida.
Naturalmente è possibile sfruttare questa funzionalità solo se il proprio ISP fornisce un indirizzo IP statico.
Disabilita le funzioni PHP dannose in Magento
Alcune funzioni PHP sono più soggette alle iniezioni di virus e quindi sono considerate piuttosto pericolose. Per questa ragione è meglio disattivarle. Per compiere questa operazione devi scaricare sul tuo PC il file php.ini, aprirlo con un editor di testo e aggiungere il codice:
disable_functions = “apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode”
Se qualcuna di queste funzioni è importante per l’esecuzione del tuo portale Magento, ad esempio è necessaria per il tema o uno specifico modulo, basterà eliminare dalla lista il nome della funzione.
Disattiva l’indexing delle directory di Magento
L’elenco delle directory, rappresenta un altro punto di accesso per diversi attacchi hacker. Attraverso questa funzione, chiunque, infatti, può inserire l’URL del sito e vedere tutti i file e le cartelle contenuti. Capirai bene quindi quanto un sito che fornice l’elenco delle directory sia vulnerabile.
In Magento è possibile disattivare l’indexing semplicemente agendo sul file .htaccess. Basta aprirlo e inserire questa riga di codice:
Options –Indexes
e la struttura delle cartelle non verrà più mostrata.
Abbassa il rischio delle MySQL Injections
Come la maggior parte dei siti di e-commerce, anche il tuo portale Magento avrà dei campi compilabili dove gli utenti possono inserire dati privati, dati relativi all’ordine e così via. Generalmente questi campi vengono sfruttati dagli hacker per iniettare dichiarazioni MySQL che possono rilevare informazioni importanti sul back end o consentire addirittura l’accesso all’area riservata del sito.
In questo caso consiglio di utilizzare firewall per applicazioni Web per assicurati che il sito resti protetto da tali attacchi.
Siamo ora giunti al termine della guida. Sono certo che se metterai in pratica tutti i punti fin qui visti, contribuirai a rendere il tuo sito Magento ancora più sicuro e robusto, in grado di sostenere senza problemi la maggior parte degli attacchi hacker. Continua a seguire il nostro blog per scoprire nuove funzionalità su Magento e la sua sicurezza!