Titolo: register_globals Post di: Mr.Pkmn su Settembre 09, 2008, 15:42:36 è on di default su Altervista
(http://img74.imageshack.us/img74/475/registerglobalsie9.png) "E allora?" Questa direttiva di PHP crea delle variabili globali (=accessibili ovunque) all'inizio di ogni script prendendo spunto dai dati nell'url, dai cookie, dai form ecc... (insomma tutte le variabili che cominciano con "$_") Se senza register_globals dovessimo eseguire uno script tipo "http://random.org/dice/?num=2" avremmo una variabile $_GET['num'], mentre con register_globals si creerebbe una seconda variabile chiamata $num. "Meglio più corto no?" All'inizio può sembrare vantaggioso, ma poi si è scoperto che è un pericolo per la sicurezza. Immaginatevi uno script del genere: Citato da: login.php <?php //Se login ha un valore positivo if($login) { //cose da utente loggato } //altrimenti... else die('EPIC FAIL'); ?> E se eseguissimo "login.php?login=true" sotto register_globals? Si creerebbe inaspettatamente una variabile $login che ha sempre un valore positivo! Ok, ma non tutti i coders sono così mona da fare script così semplici e insicuri, e se ne possono benissimo granfottere facendo così: Citato da: login.php coi controcazzi <?php così facendo la variabile login sarebbe definita negativa fin dall'inizio, a priori di quello che $_GET['login'] contiene.//PWNT $login = false; /* controlli vari */ //Se login ha un valore positivo if($login) { //cose da utente loggato } //altrimenti... else die('EPIC FAIL'); ?> A quanto ho capito Altervista tiene register_globals on per mantenere la compatibilità e agevolare il passaggio PHP 4 > PHP 5. Però sono curioso di sentire la vostra: devono essere i programmatori più attenti o altervista deve impostare register_globals di default a off?
Powered by SMF 1.1.21 |
SMF © 2006-2008, Simple Machines
Traduzione Italiana a cura di SMItalia |