Sicurezza PHP: register_globals

In giornata mi è capitato di avere una discussione sull’uso delle register_globals, per chi non lo sapesse la direttiva register_globals se abilitata, permette allo script PHP di creare variabili globali secondo quanto ricevuto via query string, form, cookies o sessione.

L'immagine “http://static.php.net/www.php.net/images/php.gif” non può essere visualizzata poiché contiene degli errori.

La mia opinione è che a svantaggio di una certa comodità è meglio disabilitare tale direttiva (non è un caso che dalla versione 4.2.0 sia disabilitata di default) per avere più controllo sull’origine dei dati ($_GET, $_POST, $_COOKIE).

Ad esempio:

<?php
if (autenticazione_utente()){
$autorizzazione = true;
}
if (
$autorizzazione) {
include '/dati_personali.php';
}
?>
se richiamiamo questo script con ?autorizzazione=1 si riesce ad autenticarsi saltando il controllo autenticazione_utente(), oppure nello script:
<?php
include$path/script.php”;
?>

manipolando la variabile globale $path si può inserire del codice PHP arbitrario nello script.

Questi sono solo 2 dei possibili esempi sull’uso “maligno” delle variabili globali… poi ognugno può restare della sua opinione :-)

Lascia un Commento