Joomla, come del resto altri noti CMS quali WordPress e Drupal, si basa sul linguaggio di programmazione PHP.
Nel breve tutorial di oggi vedremo come incrementare la sicurezza generale di un’installazione Joomla andando a modificare alcune righe del file PHP.INI – si consiglia di effettuare il backup del file.
Per trovare il file PHP.INI occorre collegarsi via FTP al sito, scaricare il file in questione ed aprirlo con un editor di testo da PC; dopo le opportune modifiche, dovremo infine procedere al suo upload.
Per vedere come utilizzare un client FTP, connettersi ad un sito ed eseguire il download ed upload di uno o più file consultare la seguente guida o in alternativa la seguente videoguida del canale ufficiale YouTube di Hosting Solutions.
Modifica varie al file PHP.INI
Una volta effettuato il backup del file, andremo ad impostare i valori come mostrato qui di seguito:
allow_url_fopen = 0 ; il valore dovrebbe essere già impostato su 0. Impedisce che uno script PHP acceda a file remoti (utile a vanificare tentativi di code injection).
allow_url_include = 0 ; come per il precedente caso, vanifica eventuali tentativi di attacco.
file_uploads = 0 ; disattiva l’upload dei file sul sito. Valutarne l’utilizzo o meno in base alla tipologia di portale ed ai casi di utilizzo.
display_errors = 0 ; per evitare che eventuali errori di configurazione/etc. siano visibili agli utenti. Nascondere tali dettagli è fondamentale in quanto potrebbero fornire preziose informazioni agli hacker.
open_basedir = “/var/www/yoursite.com:/tmp/” ; per indicare a PHP le directory da inserire in whitelist, al fine di evitare che eventuali malintenzionati possano accedere a qualsiasi parte del file system. Bisognerà inoltre indicare tutte le directory a cui PHP necessita di accedere. Per maggiori informazioni sul funzionamento della stringa open_basedir clic qui.
expose_php = 0 ; per nascondere ad eventuali malintenzionati la versione di PHP in uso.
disable_functions = exec,passthru,shell_exec,system,
proc_open,proc_close,proc_terminate,popen,curl_exec,curl_multi_exec,
show_source,posix_kill,posix_getpwuid,posix_mkfifo,posix_setpgid,
posix_setsid,posix_setuid,posix_setuid,posix_uname,php_uname,syslog
Per disattivare una serie di funzioni PHP che possono essere sfruttate dagli hacker per attaccare il sito.