Sicurezza in PHP – register_globals

Cos’è la direttiva register_globals di php ?

Direttamente da phpnews.it

Se nel php.ini è abilitata la direttiva register_globals il PHP crea automaticamente, all’avvio di ogni script, delle variabili globali con i dati provenienti dall’URL, dai form, dai cookies, dalla sessione, dal server web e dal browser.

E’ chiaro che questa situazione rende la nostra vita più semplice in fase di programmazione, ma è anche vero che se non inizializziamo tutte le variabili, un malintenzionato (o anche un erorre perchè no ..) potrebbe scrivere nell’url della nostra pagina &variabile=1 e settare in questo modo una variabile che nel nostro codice potrebbe servire a molte cose… nel peggiore dei casi ad un autentificazione.

Brutta situazione vero? Da PHP 4.2 in su infatti la direttiva è stata portata di default da ON a OFF obbligandoci quindi a scrivere codice più ragionato , e quindi più sicuro.

Soluzioni

Una buona abitudine, indipendentemente dalla direttiva register_globals è inizializzare e definire SEMPRE le variabili che andremo ad usare nel nostro script.

Secondariamente bisogna impostare la direttiva register_globals ad OFF in questo modo :

Direttamente da php.ini : register_globals = false

Nel file .htaccess del nostro sito : php_flag register_globals off

Approfondimento su register_globals (inglese) : php.net http://it.php.net/register_globals

friimaind

Mi chiamo Massimiliano e sono uno sviluppatore web. Ho aperto questo blog principalmente come agenda dove tenere traccia di tutte le mie passioni :)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *