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.

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) {se richiamiamo questo script con ?autorizzazione=1 si riesce ad autenticarsi saltando il controllo autenticazione_utente(), oppure nello script:
include '/dati_personali.php';
}
?>
<?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