Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Login sicuro in php! pareri script!

    ciao a tutti,

    ho elaborato uno script per il login, sembra funzionare alla perfezione; ma volevo chiedervi se ci sono errori di sicurezza:

    - I dati di accesso dal form vengo trasferiti con POST
    - faccio un controllo sull'ip dell'utente; se non ha tentato di accedere per più tre tre volte sbagliando, negli ultimi 15 min, passo al controllo successivo, altrimenti viene caricata una pagina di errore
    - faccio un controllo sui dati ottenuti via POST e mi assicuro che siano solo numeri e lettere e compresi tra 4 e 12 caratteri, poi passo al successivo controllo, altrimenti viene caricata una pagina di errore
    - controllo che i dati abbiamo una corrispondenza nel mio database, se tutto ok setto un cookie e registro i dati in una tabella dedicata agli accessi avvenuti con successo, altrimenti errore
    - se uno dei controlli non è soddisfatto viene registrato un tentato accesso in una tabella apposita

    spero di essere stato abbastanza chiaro!

    fatemi sapere se il sistema è valido e spero che magari possa essere utile a qualcun'altro.

    FAB

    Codice PHP:
    <?
    include "parametri.php";

    $username $_POST['username'];
    $password $_POST['password'];
    $loc $_SERVER["HTTP_ACCEPT_LANGUAGE"];
    if (
    $_SERVER['REMOTE_ADDR'] == ""){ $ip "no ip"; }
    else { 
    $ip $_SERVER['REMOTE_ADDR']; }
    $pc $_SERVER['HTTP_USER_AGENT'];
    $time time(); 

    $queryCK mysql_query("SELECT * FROM IP_LOGIN WHERE IP = '" $ip "' and '" $time "' - TIME < 900");
    $numberCK mysql_num_rows($queryCK);

    if (
    $numberCK 4){

    /** controlla che nel nome utente e nella password ci siano solo lettere e numeri e che siano composti da 4 a 12 caratteri **/
    if (preg_match("/^[a-z0-9]{4,12}$/i"$username) and preg_match("/^[a-z0-9]{4,12}$/i"$password)) {

    /** query di accessi ai dati nel DB **/
    $query2 mysql_query("SELECT * FROM members where username= '" $username "' and pw = '" $password "'");

    /** calcolo delle righe trovate; se uguale a uno esegue la verifica **/
    $num mysql_num_rows($query2);

    if (
    $num == '1'){

    while(
    $row mysql_fetch_array($query)){

    /** verifica per l'accesso all'area riservata **/
    if ($user == $row[utente] && $pass == $row[pw] && $row[listino] == 'tutti'){
    setcookie("Cookie"md5($row[nominativo]), time()+7000);
    include 
    "pagina-segreta.php";
    /** registra l'accesso **/
    $querySALVA "INSERT INTO contatore (user, nominativo, loc, ip, pc) VALUES ('$row[username]', '$row[nominativo]', '$loc', '$ip', '$pc')";
    $salvaSALVA mysql_query($querySALVA$db)
    or die(
    "Errore " mysql_error());
    }
    }
    if (
    $number == '0'){
    $queryIP mysql_query("INSERT INTO IP_LOGIN (IP, username, pw, TIME) VALUES ('$ip', '$username', '$password', '$time')");
    include 
    "error.php";
    }
    }
    else {
    $queryIP mysql_query("INSERT INTO IP_LOGIN (IP, username, pw, TIME) VALUES ('$ip', '$username', '$password', '$time')");
    include 
    "error2.php";
    }
    } else {
    $queryIP mysql_query("INSERT INTO IP_LOGIN (IP, username, pw, TIME) VALUES ('$ip', '$username', '$password', '$time')");
    include 
    "error3.php";
    }
    }
    ?>

  2. #2

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.