Joomla & PHP: sicurezza e prestazioni

Tra qualche giorno, per la precisione il 31 dicembre 2018, PHP 5.6 terminerà il suo ciclo di vita e non sarà più aggiornato e supportato.

Infatti il team di sviluppo di PHP, il 6 dicembre 2018, ha rilasciato PHP 5.6.39 annunciando che questa versione è l’ultimo aggiornamento di sicurezza rilasciato e invitando a pianificare quanto prima l’aggiornamento a PHP 7.1, PHP 7.2, PHP 7.3 che sono le versioni supportate attualmente. Da tenere presente che anche il ramo di PHP 7.0 ha ultimato il suo ciclo di vita il 3 dicembre 2018 con il rilascio di PHP 7.0.33.

A questo punto ritengo utile un breve excursus di come funziona il rilascio e il supporto delle versioni di PHP. Ogni ramo di PHP è completamente supportato per due anni a partire dalla data di rilascio. Nei primi due anni quindi i bug e i problemi di sicurezza vengono risolti con regolarità. Successivamente viene garantito un ulteriore anno di supporto limitato ai problemi di sicurezza riscontrati. In questo anno non ci sono rilasci regolari ma solo se necessario. Infine trascorsi tre anni dalla data di rilascio il ramo di sviluppo termina il proprio ciclo di vita e non è più supportato. Nella tabella sottostante il riepilogo per quanto riguarda gli ultimi 5 rami di sviluppo (PHP 5.6 è stata una eccezione come si vede e il supporto è durato oltre 4 anni perché il passaggio da PHP 4 a PHP 5 ha comportato un salto notevole nello sviluppo di questo linguaggio di programmazione):

Ramo

Rilascio iniziale

Supporto pieno fino al

Supporto di sicurezza fino al

5.6

28 agosto 2014

18 gennaio 2017

31 dicembre 2018

7.0

3 dicembre 2015

3 dicembre 2017

3 dicembre 2018

7.1

1 dicembre 2016

1 dicembre 2018

1 dicembre 2019

7.2

30 novembre 2017

30 novembre 2019

30 novembre 2020

7.3

6 dicembre 2018

6 dicembre 2020

6 dicembre 2021

Dalla tabella si evince che a partire da gennaio 2019 ci sono ben due rami di sviluppo di PHP che non riceveranno più alcun supporto e potrebbero essere esposti a vulnerabilità di sicurezza che non saranno corrette.

Dalle statistiche d'uso di PHP al 20 dicembre 2018 elaborate da W3Techs emerge che il 78.9% di tutti i siti web con un linguaggio di programmazione lato server utilizza PHP, vale a dire 7 siti web su 10. Fin qui nulla di eclatante visto che PHP è il linguaggio di programmazione con cui sono sviluppati applicativi molto conosciuti e utilizzati come il nostro Joomla ma anche Wordpress, Drupal, Magento, Prestashop e così via.

I dati diventano preoccupanti quando si va ad analizzarli nello specifico e si scopre che il 74.9% di questo 78.9% utilizza PHP 5.X e soltanto il 24.4% utilizza PHP 7.X facendo emergere una situazione di grave pericolo per la stragrande maggioranza dei siti attualmente attivi nel web.

Da quanto scritto finora diventa chiaro che non è sufficiente tenere aggiornato Joomla e le estensioni all'ultima versione stabile perché il pericolo può arrivare anche dal livello sottostante: il server su cui è ospitato il nostro sito.

A partire da Joomla 3.7 è stato introdotto, nel backend amministrativo, un controllo di sistema che verifica la versione di PHP in uso sul server e restituisce un messaggio di errore se la versione di PHP non è più supportata, oppure un messaggio di allerta se la versione di PHP sta ricevendo solo fix di sicurezza ed è prossima alla fine del suo ciclo di vita. Nessun messaggio viene restituito se la versione di PHP è supportata.

In ogni caso è consigliabile verificare con precisione quale versione di PHP è presente sul server dal pannello di amministrazione: menu Sistema -> Informazioni di sistema -> Informazioni PHP. Oltre alla versione precisa di PHP è possibile verificare la configurazione specifica attingendo a numerose informazioni sui moduli e le opzioni attive.

Oltre ai vantaggi in termini di sicurezza l'aggiornamento alle versioni 7.1, 7.2 e 7.3 porta ​​enormi miglioramenti in termini di prestazioni. Così grandi che aggiornare dovrebbe essere una priorità al di là della sicurezza. Molti confronti e test, reperibili in rete, dimostrano che PHP 7.2 consente al sistema di eseguire il doppio delle richieste al secondo rispetto a PHP 5.6 con la metà del tempo di latenza. Addirittura alcuni test dimostrano che PHP 7.2 è il 400% più veloce di PHP 5.2 e i primi test stanno dimostrando che PHP 7.3 è circa il 5% più veloce di PHP 7.2.

La stragrande maggioranza dei fornitori di hosting permettono di modificare la versione di PHP dal pannello di amministrazione del servizio di hosting in piena autonomia. Se ciò non dovesse essere possibile bisogna chiedere al supporto tecnico del fornitore di hosting la modifica della versione di PHP in uso. Detto per inciso, se ci si trova in una situazione del genere è opportuno prendere in considerazione la possibilità di rivolgersi ad un altro fornitore di hosting.

Joomla 3.9 funziona correttamente con le versioni di PHP 7.1 e superiori ma è necessario verificare che tutte le estensioni utilizzate sul sito siano in grado di funzionare correttamente, altrimenti ci si troverà in uno scenario minimo rappresentato dalla comparsa di messaggi di avviso di vario genere fino ad uno scenario massimo di errori di varia tipologia per il richiamo di funzioni deprecate che impediranno il funzionamento del sito.

Regola valida sempre: bisogna un minimo sapere cosa si sta facendo e dove si stanno mettendo le mani.