
Auditor automatico di configurazione PHP che analizza php.ini per rilevare configurazioni errate di sicurezza, supporta le modalità CLI e web, e fornisce risultati in formato testo, HTML o JSON.
Controlla la configurazione PHP corrente per potenziali falle di sicurezza.
Basta accedere a questo file dal tuo webserver o eseguirlo su CLI.
Questo software è stato scritto da Ben Fuhrmannek, SektionEins GmbH, con l'obiettivo di automatizzare i controlli su php.ini e dedicare più tempo a compiti piacevoli.
CLI: Basta chiamare php phpconfigcheck.php. Tutto qui. Aggiungi -a per vedere anche i risultati nascosti, -h per l'output HTML e -j per l'output JSON.
WEB: Copia questo script in qualsiasi directory accessibile dal tuo webserver, ad esempio la tua document root. Vedi anche 'Salvaguardie' sotto.
L'output in modalità non-CLI è HTML di default. Questo comportamento può essere modificato impostando la variabile d'ambiente PCC_OUTPUT_TYPE=text o PCC_OUTPUT_TYPE=json.
Alcuni casi di test sono nascosti di default, in particolare skipped, ok e unknown/untested. Per mostrare tutti i risultati, usa phpconfigcheck.php?showall=1. Questo non si applica all'output JSON, che restituisce tutti i risultati di default.
Per controllare il formato di output in modalità WEB usa phpconfigcheck.php?format=..., dove il valore di format può essere uno tra text, html o json. Ad esempio: phpconfigcheck.php?format=text. Il parametro format ha la precedenza su PCC_OUTPUT_TYPE.
Nella maggior parte dei casi è una buona idea tenere per sé le questioni relative alla sicurezza come la configurazione PHP. Sono state implementate le seguenti salvaguardie:
controllo mtime: Questo script smette di funzionare in modalità non-CLI dopo due giorni. Il riarmo del controllo può essere effettuato con touch phpconfigcheck.php o copiando nuovamente lo script sul server (ad esempio tramite SCP). Questo controllo può essere disabilitato impostando la variabile d'ambiente: PCC_DISABLE_MTIME=1, ad esempio SetEnv PCC_DISABLE_MTIME 1 nell'.htaccess di Apache.
controllo IP sorgente: Di default solo localhost (127.0.0.1 e ::1) può accedere a questo script. Altri host possono essere aggiunti impostando PCC_ALLOW_IP sul tuo indirizzo IP o un pattern wildcard, ad esempio SetEnv PCC_ALLOW_IP 10.0.0.* in .htaccess. Puoi anche scegliere di accedere al tuo webserver tramite SSH Port forwarding, ad esempio ssh -D o ssh -L.
funzioni disabilitate: Questo script necessita di alcune funzioni per funzionare correttamente, come ini_get() e stat(). Se una di queste funzioni è nella blacklist (o non nella whitelist), l'esecuzione fallirà o produrrà output non valido. In questi casi è possibile temporaneamente mettere Suhosin in modalità simulazione e omettere disable_functions. Per essere sicuri, una configurazione di sicurezza più rilassata può essere fatta con .htaccess in una directory separata. Inoltre, questo script può essere chiamato da riga di comando con la configurazione del tuo webserver, ad esempio php -n -c /etc/.../php.ini phpconfigcheck.php.
CLI: Le versioni più vecchie di PHP non conoscono il nome SAPI 'cli' e usano l'output in stile CGI anche su cli. Soluzione: PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
Questo strumento ti aiuterà solo a configurare un ambiente PHP sicuro. Nient'altro. La tua configurazione, software o qualsiasi configurazione correlata potrebbe comunque essere vulnerabile, anche se l'output di questo strumento suggerisce il contrario.