Guida basata su un intervento sistemistico concluso e verificato. Hardening applicato a un parco hosting multi-PHP: parametri di sessione nelle configurazioni CLI/FPM, controlli e reload dei servizi.
Perché intervenire
In seguito a una segnalazione di sicurezza riguardante la gestione delle sessioni e dei caricamenti PHP, è stato applicato un hardening uniforme a server che ospitavano più versioni di PHP, comprese release legacy. La modifica non sostituisce gli aggiornamenti di sicurezza e non rende sicura una versione fuori supporto.
I due parametri
session.upload_progress.enabled = 0
session.use_strict_mode = 1
Il primo disattiva la funzionalità di upload progress basata sulle sessioni. Il secondo evita che PHP accetti indiscriminatamente identificativi di sessione non inizializzati; può avere implicazioni sulle applicazioni che gestiscono direttamente gli ID di sessione.
Trovare tutte le configurazioni
find /etc/php -type f -name php.ini -print
find /etc/php -type f -name '*.ini' -print | head -100
php -i | grep -E 'session.upload_progress.enabled|session.use_strict_mode'
systemctl list-units --type=service | grep -E 'php.*fpm'
Su server con più versioni e pool PHP-FPM, la configurazione php.ini della CLI può essere diversa da quella letta dal processo web. Controllare anche gli override di pool, vhost e applicazione.
Applicazione conservativa
Prima di intervenire, salvare copie dei file e confrontare gli override già presenti. Aggiornare i parametri nelle configurazioni pertinenti evitando duplicati o direttive contraddittorie, verificare la sintassi di ogni servizio PHP-FPM e ricaricare il solo servizio necessario. Nell'intervento reale sono state aggiornate le configurazioni delle versioni in uso, quindi riavviati PHP-FPM e Apache oppure Nginx in base al server.
Esempi di verifica
php8.3 -i | grep -E 'session.upload_progress.enabled|session.use_strict_mode'
php-fpm8.3 -t
systemctl status php8.3-fpm --no-pager
apachectl -t
nginx -t
Ripetere per ciascuna versione realmente installata. Le verifiche del contesto web vanno eseguite senza lasciare pubblici file phpinfo().
Verifica applicativa
Controllare login, autenticazioni persistenti, upload e carrelli/sessioni delle applicazioni. Monitorare gli error log PHP e il tasso di risposta HTTP dopo la modifica.
Cosa non conclude questo intervento
È un controllo difensivo di emergenza: eventuali vulnerabilità nel core PHP o nelle applicazioni richiedono aggiornamenti, regole WAF appropriate e revisione dei privilegi filesystem.
Guide correlate
I comandi con nomi segnaposto vanno adattati al proprio ambiente. Le configurazioni di produzione, gli IP e le credenziali non sono riportati.