• User

    [PHP] Comandi GET per modificare pagina index

    Salve,
    Mi sono imbattuto in una situazione un po' strana - almeno per me - questo è il listato della index:

    [PHP]
    <?php
    include('blog/func.php');

    if(isset($_SESSION['utente'])){

    $utente=$_SESSION['utente'];
    
    if(@session_is_registered('amministratore')){
    $admin=('<a href="editor.php"><div class="pulsante"><center>Editor</center></div></a>');
    

    }else{

    $admin='';
    

    }

    echo('<div class="benvenuto"><h2>Benvenuto '.$utente.'</h2></div><a href="index.php"><div class="pulsante"><center>Home</center></div></a> '.$admin.'<a href="logout.php"><div class="pulsante"><center>Logout</center></div></a>');
    

    }else{
    echo('<div class="benvenuto"><h2>Benvenuto</h2></div> <a href="registrati.php"><div class="pulsante"><center>Registrati</center></div></a> <a href="login_utente.php"><div class="pulsante"><center>Loggati</center></div></a>');
    }
    ?>
    </div>
    <div class="testata">Hardware & Psiche</div>
    <div class="secondoMenu">
    <div class="pulsante"><center>prova</center></div>
    <div class="pulsante"><center>prova</center></div>
    </div>
    <?php
    if(!isset($_GET['cod'])){
    echo('
    <div class="mappa">
    <a href="index.php?cod=rubriche"><div class="box"><div class="titolo"><br/><br/><br/><center>Rubriche</center></div></div></a>
    <a href="index.php?cod=articoli"><div class="box"><div class="titolo"><br/><br/><br/><center>Ultimi<br/>Articoli</center></div></div></a>
    <a href="index.php?cod=commenti"><div class="box"><div class="titolo"><br/><br/><br/><center>Ultimi<br/>Commenti</center></div></div></a>
    <a href="index.php?cod=video"><div class="box"><div class="titolo"><br/><br/><br/><center>Video</center></div></div></a>
    <a href="index.php?cod=ebook"><div class="box"><div class="titolo"><br/><br/><br/><center>eBook</center></div></div></a>
    <a href="index.php?cod=info"><div class="box"><div class="titolo"><br/><br/><br/><center>Info</center></div></div></a>
    </div>');
    }else{
    $prova=@$_GET['cod'];
    include('rubriche.php');
    }
    ?>
    [/PHP]

    Questo è il file incluso 'rubriche.php':

    [PHP]
    <?php

    if($prova=='rubriche'){
    if(!isset($_GET['rub'])){
    $query="SELECT * FROM rubriche";
    $result=mysql_query($query,$conn->conn);

    	echo('<div class="mappa">');
    	while($assoc=mysql_fetch_assoc($result)){
    	echo('
        <a href="index.php?rub='.$assoc['nome'].'"><div class="box"><div class="titolo"><br/><br/><br/><center>'.$assoc['nome'].'   </center></div></div></a>
    ');
            }
    

    }else{
    $rub=@$_GET['rub'];
    $query="SELECT * FROM articoli,rubriche WHERE articoli.id_post=rubriche.id_post AND rubriche.nome='{$rub}' ORDER BY data DESC";
    $result=mysql_query($query,$conn->conn);

    echo('<div class="mappa">');
    
    while($assoc=mysql_fetch_assoc($result)){
    echo('
    <a href="index.php?post='.$assoc['titolo'].'"><div class="box"><div class="titolo"><br/><br/><br/><center>'.$assoc['titolo'].'</center></div></div></a>
    

    ');
    }
    }
    }

    echo('</div>');

    ?>
    [/PHP]

    Nella home page di default mi compaiono, come programmato, 6rubriche principali. Clicco sulla prima (?cod=rubriche) ed entro nell'elenco di tutte le rubriche, clicco su una di queste
    (?rub='.$assoc['nome'].') ed invece di mandarmi al elenco dei post di quella rubrica, mi rimanda alla situazione di partenza, con le 6rubriche principali di default. Eppure nella url il comando GET appare. Quindi non capisco cosa non va. Potete aiutarmi?


  • ModSenior

    Ciao Giovanni Pili,
    allora partiamo col dire che il tuo script è attualmente vulnerabile alle SQL Injection.
    Per quanto riguarda il problema deriva dall'if:
    [php]
    if(!isset($_GET['cod'])){
    [/php]Perchè andando tu in ?rub='.$assoc['nome'].' entrerai sempre in quell'if che visualiza l'elenco.


  • User

    @Thedarkita said:

    Ciao Giovanni Pili,
    allora partiamo col dire che il tuo script è attualmente vulnerabile alle SQL Injection.
    Per quanto riguarda il problema deriva dall'if:
    [php]
    if(!isset($_GET['cod'])){
    [/php]Perchè andando tu in ?rub='.$assoc['nome'].' entrerai sempre in quell'if che visualiza l'elenco.

    OK, perfetto, grazie! Ho già una mezza idea di come sistemarlo allora. Nell'index ho semplicemente messo un redirect che si attiva se $_GET['cod'] è vero. Il resto lo faccio nel file rubriche, dove devo necessariamente copia-incollare anche il codice html.

    P.s
    Dove posso informarmi sulle SQL Injection?


  • ModSenior

    Ho appena scritto una guida nelle risorse utili che trovi qui:
    [Guida] SQL Injection