Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    45

    Modifiche Script per "register globals OFF"

    Salve a tutti, ho uno script in php che vorrei utilizzare per loggare degli utenti.
    Questo script però funziona solo con "register globals OFF".
    So che per farlo funzionare si devono modificare alcuni punti del codice.
    Io però di PHP non conosco nulla .
    C'è qualcuno disponibile a dargli un'occhiata e a sistemarlo ?

    I fil eprincipali sono questi:

    Log_do.php
    <?
    include ("dati.txt");
    session_start();
    if (($username=="") || ($password=="")){?>
    <CENTER>


    <H5>ATTENZIONE, è necessario specificare tutti i dati richiesti</H5>


    <A HREF=login.php>RIPROVA</A>
    </CENTER>
    <?
    session_destroy();
    }
    else {
    //connessione al server
    $link = mysql_connect ( "$db_host", "$db_login", "$db_pass") or die ( "Non riesco a connettermi al server $db_host
    controlla controlla che il valore delle variabili in data.txt siano corretti!");

    //selezione del Database
    mysql_select_db ($database, $link) or die ( "Non riesco a selezionare il db $database
    ");

    //estrazione del livello di utenza
    $selezione_livello = "SELECT livello FROM utenti WHERE ((username='$username') && (password='$password'))";
    $result_livel = mysql_query ($selezione_livello, $link) or die ("Non riesco ad eseguire $selezione_livello");
    $livello = mysql_fetch_array ($result_livel);
    mysql_close ($link);
    //autenticazione utente e registrazione della sessione
    if ((isset($livello[0])) && ($livello[0]!="")){

    session_register("autorizer");
    $autorizer = array ("username" => $username, "password" => $password, "livello" => $livello[0]);
    header("location: ../a_redazione/index_redazione.php" );
    }
    else {?>
    <CENTER>


    <H5>ATTENZIONE, errore di autenticazione!</H5>


    <A HREF=login.php>RIPROVA</A>
    </CENTER>
    <?
    session_destroy();
    }
    }
    ?>


    elimina_utenti.php
    <?
    $request_livel = 10;
    include "auth.inc";
    include( "dati.txt");

    if (!isset($link)or($link=="home")){
    $link=mysql_connect( "$db_host", "$db_login", "$db_pass") or die ( "Non riesco a connettermi a $db_host");
    mysql_select_db ($database, $link) or die ( "Non riesco a selezionare il db $database
    ");
    $tutto = "SELECT * FROM utenti ORDER BY nome, username";
    $query = mysql_query ($tutto,$link) or die ( "Non riesco ad eseguire la richiesta $tutto");
    // Preparo la tabella per accogliere i dati
    echo "
    <HTML>
    <HEAD><TITLE>Elimina utenti</TITLE></HEAD>
    <BODY BGCOLOR=#F5FFFF>
    <table border=\"1\" width=\"500px\">
    <tr>
    <td colspan=\"9\">
    <p STYLE=\"BACKGROUND-COLOR:#F5FFFF; COLOR:#FF0000; font-size:20pt\" align=\"center\" > GIORNALISTI </td>
    </tr>";

    echo "
    <tr>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Username</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Password</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Nome</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Livello</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\"></P></td>
    </tr> ";

    while ($valori = mysql_fetch_array ($query)){
    $a1 = $valori ["username"];
    $a2 = $valori ["password"];
    $a3 = $valori ["nome"];
    $a4 = $valori ["livello"];
    $a5 = $valori ["id"];

    echo "
    <tr >
    <td WIDTH=20% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a1</P></td>
    <td WIDTH=20% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a2</P></td>
    <td WIDTH=20% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a3</P></td>
    <td WIDTH=20% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a4</P></td>
    <td WIDTH=20% align=\"center\">
    <FORM METHOD=POST NAME=elimina ACTION=$PATH_INFO?link=avviso>
    <INPUT TYPE=HIDDEN NAME=da_eliminare VALUE=$a5>
    <INPUT TYPE=submit VALUE=Elimina>
    </FORM>
    </td>
    </tr>
    ";
    }
    echo "</table>
    <table width=500 border=\"0\" cellspacing=\"5\" cellpadding=\"5\">
    <tr>
    <td></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td align=\"center\" >MENU</td>
    <td></td>
    </tr>
    </table>
    ";
    mysql_close ($link);
    }

    elseif ($link == "avviso"){
    $link=mysql_connect( "$db_host", "$db_login", "$db_pass");
    mysql_select_db ($database, $link) or die ("Non riesco a selezionare il database $database");
    $ric_sql = "SELECT * from utenti where id='$da_eliminare'";
    $dati=mysql_query("$ric_sql", $link) or die ( "Non riesco ad eseguire la richiesta $ric_sql");
    $row=$row = mysql_fetch_array ($dati);
    ECHO "<BODY BGCOLOR=\"#000000\">

    <CENTER><TABLE BGCOLOR=\"#FFFFFF\"><TR><TD VALIGN=TOP>
    ";
    ECHO "<P STYLE=\"COLOR:#0000CC\">Attenzione!!! Si sta scegliendo di eliminare dal database il seguente contatto:
    </P>";
    ECHO "<CENTER><TABLE><TR><TD>";
    ECHO "<P STYLE=\"COLOR:#0000CC\"> Username: ". $row[ "username"]. "
    ";
    ECHO "Password: ". $row[ "password"]. "
    ";
    ECHO "Nome: ". $row[ "nome"]. "
    ";
    ECHO "Livello: ". $row[ "livello"]. "
    </P>";
    ECHO "<P STYLE=\"COLOR:#0000CC\">Vuoi proseguire?</P>
    </TD></TR></TABLE>
    <TABLE><TR><TD>
    <FORM METHOD=\"post\" ACTION=$PATH_INFO?link=delete>
    <INPUT TYPE=\"HIDDEN\" NAME=\"da_eliminare\" VALUE=". $row["id"]. ">".
    "<INPUT TYPE=\"submit\" VALUE=\"Sì\"></FORM></TD>
    <TD><FORM METHOD=\"post\" ACTION=$PATH_INFO?link=home>
    <INPUT TYPE=\"submit\" VALUE=\"Annulla\"></FORM></TD></TR></TABLE></CENTER></TD></TR></TABLE><CENTER></BODY>";
    mysql_close ($link);
    }

    elseif ($link == "delete"){
    $link=mysql_connect( "$db_host", "$db_login", "$db_pass");
    mysql_select_db ($database, $link) or die ("Non riesco a selezionare il database $database");
    $ric_sql = "delete from utenti where id='$da_eliminare'";
    mysql_query("$ric_sql", $link) or die ( "Non riesco ad eseguire la richiesta $ric_sql");
    mysql_close ($link);
    ECHO "<BODY BGCOLOR=\"#000000\">";
    echo "

    <CENTER><P STYLE=\"COLOR:#FFFFFF\">[B]Contatto eliminato con successo!</P></CENTER>";
    echo "<meta http-equiv=refresh content=3;url=$PATH_INFO?link=home></BODY>";
    }

    ?>


    inserisci_utenti.php
    <?
    $request_livel = 10;
    include "auth.inc";
    ?>

    <html>
    <head>
    <title>Inserimento Utenti</title>
    </head>
    <BODY BGCOLOR="#F5FFFF"><BLOCKQUOTE>

    <?

    if (isset($username)){
    include( "dati.txt");
    $link=mysql_connect( "$db_host", "$db_login", "$db_pass") or die ( "Non riesco a connettermi a [b]$db_host");

    mysql_select_db ($database, $link) or die ( "Non riesco a selezionare il db $database
    ");

    $dati= " INSERT INTO utenti VALUES ('',
    '$username',
    '$password',
    '$nome',
    '$livello');";
    mysql_query ($dati, $link) or die ( "Non riesco ad eseguire la query $dati");
    Echo "<TABLE BGCOLOR=\"#FFFF99\"><TR><TD><FONT COLOR=\"#0000CC\">I dati sono stati archiviati con successo nel dataBase...</FONT></TD></TR></TABLE>";
    mysql_close ($link);
    echo "<meta http-equiv=refresh content=1;url=$PATH_INFO>";
    }

    else {
    echo"
    <table border=\"1\" width=\"400px\" cellspacing=\"5\" cellpadding=\"5\">
    <tr>
    <td colspan=2>
    <p STYLE=\"BACKGROUND-COLOR:#F5FFFF; COLOR:#FF0000; font-size:20pt\" align=\"center\">Inserisci nuovi utenti
    <form method=POST action= $PATH_INFO >
    </P></td>
    </tr>
    <tr>
    <td align=\"right\" width=60%><FONT COLOR=\"#0000CC\">Username </FONT></td>
    <td width=40%><input type=text name=username size=25></td>
    </tr>
    <tr>
    <td align=\"right\" width=60%><FONT COLOR=\"#0000CC\">Password </FONT></td>
    <td width=40%><input type=text name=password size=25></td>
    </tr>
    <tr>
    <td align=\"right\" width=60%><FONT COLOR=\"#0000CC\">Nome </FONT></td>
    <td width=40%><input type=text name=nome size=25></td>
    </tr>
    <tr>
    <td align=\"right\" width=60%><FONT COLOR=\"#0000CC\">Livello </FONT></td>
    <td width=40%><input type=text name=livello size=25></td>
    </tr>
    <tr>
    <td width=100% colspan=2 align=center><input type=submit value=Inserisci nuovi dati><input type=reset value=Annulla></td>
    </tr>
    </table>

    <table width=400 border=\"0\" cellspacing=\"5\" cellpadding=\"5\">
    <tr>
    <td></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td align=\"center\" >MENU</td>
    <td></td>
    </tr>
    </table>

    ";
    }
    ?>
    </BLOCKQUOTE></body>
    </html>


    visualizza_utenti.php
    <?
    $request_livel = 10;
    include "auth.inc";

    include( "dati.txt");
    $link=mysql_connect( "$db_host", "$db_login", "$db_pass") or die ( "Non riesco a connettermi a $db_host");

    mysql_select_db ($database, $link) or die ( "Non riesco a selezionare il db $database
    ");

    $tutto = "SELECT * FROM utenti ORDER BY nome, username";

    $query = mysql_query ($tutto,$link) or die ( "Non riesco ad eseguire la richiesta $tutto");

    // Preparo la tabella per accogliere i dati
    echo "
    <HTML>
    <HEAD><TITLE>Elenco Utenti</TITLE></HEAD>
    <BODY BGCOLOR=#F5FFFF>
    <table border=\"1\" width=\"500px\">
    <tr>
    <td colspan=\"9\">
    <p STYLE=\"BACKGROUND-COLOR:#F5FFFF; COLOR:#FF0000; font-size:20pt\" align=\"center\" > GIORNALISTI </td>
    </tr>
    ";

    echo "
    <tr>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Username</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Password</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Nome</P></td>
    <td align=\"center\" bgcolor=#FFFF99><P STYLE=\"COLOR:#0000CC\">Livello</P></td>
    </tr>
    ";

    while ($valori = mysql_fetch_array ($query)){
    $a1 = $valori [ "username"];
    $a2 = $valori [ "password"];
    $a3 = $valori [ "nome"];
    $a4 = $valori [ "livello"];

    echo "
    <tr>
    <td WIDTH=25% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a1</P></td>
    <td WIDTH=25% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a2</P></td>
    <td WIDTH=25% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a3</P></td>
    <td WIDTH=25% align=\"center\" ><P STYLE=\"COLOR:#0000CC\">$a4</P></td>
    </tr>
    ";
    }
    echo "</table>
    <table width=500 border=\"0\" cellspacing=\"5\" cellpadding=\"5\">
    <tr>
    <td></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td align=\"center\" >MENU</td>
    <td></td>
    </tr>
    </table>
    ";
    mysql_close ($link);

    ?>


    auth.inc
    <?
    session_register("autorizer");
    if (isset($autorizer["livello"])){
    if ($autorizer["livello"]<$request_livel){
    require "low_livel.htm";
    exit;
    }
    }
    else {
    header ("location: ../a_login/login_riesegui.php");
    }
    ?>


    log_out.php
    <?
    session_register("autorizer");
    session_destroy();
    header ("location: login.php");

    ?>

    Ringrazio anticipatamente quanti mi possono aiutare. GRAZIE !!!

    Eventualmente posso inviare in PVT tutti i file zippati.

  2. #2
    Fossi in te lo riscriverei daccapo.
    Questo script oltre che a funzionare solo con "register_globals = On" è anche pieno di insidie per la sicurezza.

    Esempio da non seguire mai:
    Codice PHP:
    <?PHP


      mysql_query
    ("SELECT * FROM utenti WHERE username = '$username'");

    ?>
    questo è pericolosissimo se quella username è inserita direttamente dall'utente e non viene mai controllata e validata nello script.

    Già l'uso di variabili tramite il register_globals è pericoloso se a questo ci aggiungiamo la gestione del database e di tutto il resto seguendo quella strada il tuo più che un modulo di login/registrazione diventa un modulo per lo spionaggio industriale.

    Buttalo e scrivine uno tuo fatto come si deve
    Administrator of NAMDesign.Net

  3. #3
    Originariamente inviato da LeaderGL
    Esempio da non seguire mai:
    Codice PHP:
    mysql_query("SELECT * FROM utenti WHERE username = '$username'"); 
    questo è pericolosissimo se quella username è inserita direttamente dall'utente e non viene mai controllata e validata nello script.
    sei arrivato così giù a leggere? VVoVe:

    io mi son messo le mani nei capelli qui, a linea zero
    codice:
    include ("dati.txt");
    dove ovviamente nel file di testo ci sono i dati di connessione al database ... nemmeno, un ini, un txt ... paura.

    Evitate ste porcherie



    P.S.
    Originariamente inviato da alf
    Io però di PHP non conosco nulla
    allora perchè non usi un linguaggio che conosci o non ti rivolgi ad un esperto? I login son delicati, la programmazione va studiata ... insomma, anche funzionasse per magia uno script altrui non sei in grado di capire se questo script valga qualcosa. Senza offesa, ma di gente che poi passa e fa casini ce c'è tanta e non puoi prendertela con nessuno se usi codice di questo tipo
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.