Le direttive generali



Cominciamo l'esame delle direttive del file php.ini esaminando le prime che ci possono garantire una configurazione più sicura del nostro motore di scripting.

open_basedir

[Php.ini e apache2.conf]

Limita tutte le operazioni sul filesystem ad opera di PHP all'interno degli alberi di directory che hanno per padri le directory selezionate. Se l'applicazione Web non ha necessità di accedere altrove, è una buona idea impostarla, soprattutto in caso di esistenza di più applicazioni Web sullo stesso server.

Non dovrebbe, in ogni modo, esser compito di PHP limitare l'utilizzo del filesystem per alcune sue function, bensì compito del sistema operativo: non illudersi di esser al sicuro solo per aver configurato questa direttiva, nel passato sono stati usati metodi per inficiarne l'utilità.

Esempio: open_basedir = /var/www/myapp:/tmp

disable_functions

[Solo php.ini]

Consente di disabilitare le funzioni PHP (non) desiderate. Un po' insensato: solitamente si nega tutto il possibile per abilitare solo in seguito quanto strettamente necessario.  Inoltre, devo elencare qualche centinaio di funzioni qui di seguito? Ed ogni volta che viene introdotta una nuova function metter mano al php.ini?

Esempio: disable_functions readfile,exec

expose_php

[Solo php.ini]

Se questa direttiva viene abilitata, PHP darà traccia di sé nelle intestazioni (header) HTTP inviate dal server al client in risposta alla richiesta di ogni pagina (risorsa) oppure, in altre circostanze (quali errori inerenti la mancanza della risorsa richiesta ad esempio), anche nella pagina HTML di risposta stessa. Vediamo alcuni esempi.

Informazioni inviate da Apache quali header HTTP durante la risposta alla richiesta di una pagina. Queste informazioni sono di norma nascoste all'utente finale ad opera del browser.

Se la direttiva è ad On:

HTTP/1.1 200 OK
Date: Mon, 16 Oct 2006 15:23:13 GMT
Server: Apache/2.0.55 (Debian) PHP/5.1.6-1 mod_ssl/2.0.55 OpenSSL/0.9.8c
X-Powered-By: PHP/5.1.6-1

Se ad Off:

HTTP/1.1 200 OK
Date: Mon, 16 Oct 2006 15:25:50 GMT
Server: Apache/2.0.55 (Debian) mod_ssl/2.0.55 OpenSSL/0.9.8c

Informazioni inviate (sia tramite header HTTP che) nella pagina di risposta, quindi visibili anche all'utente finale inesperto a fronte di una richiesta non soddisfatta (codice di errore HTTP 404).

Se la direttiva è ad On:

The requested URL /pagina was not found on this server.
Apache/2.0.55 (Debian) PHP/5.1.6-1 mod_ssl/2.0.55 OpenSSL/0.9.8c Server at <IP> Port 443

Se la direttiva è ad Off:

The requested URL /pagina was not found on this server.
Apache/2.0.55 (Debian) mod_ssl/2.0.55 OpenSSL/0.9.8c Server at <IP> Port 443

Queste informazioni possono rivelarsi utilissime per un cracker o per chiunque conosca le vulnerabilità note della precisa release dell'interprete in uso.

Assieme al corretto aggiornamento delle release di PHP, impostare questa direttiva ad Off aiuta nell'evitare di incorrere in exploit dovuti alla tecnologia usata.

Impostare quindi: expose_php = Off.

Ultimi articoli Sicurezza

Nmap: tecniche per evadere un firewall

Vediamo come sfuggire ai controlli di un firewall utilizzando Nmap.

Sfruttare vulnerabilità XSS con BeEF

Usiamo BeEF per automatizzare lo sfruttamento di vulnerabilità Cross...

Trojan Flashback: rimuoverlo da Mac OS X

Individuiamo e rimuoviamo il trojan Flashback da Mac OS X

Individuare vulnerabilità in Joomla con JoomScan

Usiamo JoomScan per verificare la sicurezza di Joomla e la presenza...

XSS: attacchi avanzati

Approfondiamo le vulnerabilità Cross Site Scripting analizzando...

Altri articoli

Guide Sicurezza

Guida SQL Injection con Sqlmap

Scopriamo se le nostre applicazioni web sono vulnerabili alle SQL...

Guida sicurezza applicazioni Web

Le tecniche di attacco più comuni, i metodi per verificare la...

Guida Sicurezza wireless

Quali sono i pericoli di sicurezza di una rete senza filo e quali...

Altre guide

Newsletter @Sicurezza

Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto