volevo avere alcuni consigli, pareri, critiche sul sistema di login che sto utilizzando.. principalmente nell'aspetta sicurezza..
utilizzo una funzioncina per il login
quando invece devo riconoscere l'utente eseguo questo codiceCodice PHP:function login($nickname, $password) {
##SE I CAMPI OBBLIGATORI NON SIANO STATI COMPILATI##
if (empty($nickname) OR empty($password)) {
echo "Campi non compilati";
##SE TUTTI I CAMPI OBBLIGATORI SONO STATI COMPILATI CONTINUO CON I CONTROLLI##
} else {
##CONTROLLO CARATTERI##
$nickname_controllato = mysql_escape_string($nickname);
$password_controllata = mysql_escape_string(md5($password));
##GENERO SESSION KEY##
$session_key = codice_random(5);
##VERIFICO CHE L'UTENTE ESISTA##
$sql = "SELECT * FROM tw_utenti WHERE nickname = '$nickname_controllato' AND password = '$password_controllata'";
$query = @mysql_query($sql);
$row = mysql_fetch_array($query);
$row_n = mysql_num_rows($query);
##se l'utente non esiste##
if ($row_n == 0) {
echo "Utente non riconosciuto";
echo "<meta http-equiv=\"Refresh\" content=\"1; url=index.php\">";
##se l'utente esiste##
} else {
##controllo che l'utente dopo la registrazione abbia attivato il profilo##
if (empty($row[codice_attivazione])) {
echo "Utente riconosciuto";
$_SESSION['nickname_controllato'] = $nickname_controllato;
$_SESSION['password_controllata'] = $password_controllata;
$_SESSION['session_key'] = $session_key;
##Aggiorno il profilo nel database con la nuova session key##
mysql_query("UPDATE tw_utenti SET login_n = login_n+1, session_key = '$session_key' WHERE id_utente = '".$row['id_utente']."'") or die("Errore alla linea ".__LINE__.": ".mysql_error()) ;
echo "<meta http-equiv=\"Refresh\" content=\"1; url=index.php\">";
} else {
echo "Utente non attivo";
echo "<meta http-equiv=\"Refresh\" content=\"1; url=index.php\">";
}
}
}
}
Codice PHP:####RICONOSCIMENTO UTENTE####
$nickname_controllato = $_SESSION['nickname_controllato'];
$password_controllata = $_SESSION['password_controllata'];
$session_key = $_SESSION['session_key'];
####CONTROLLO UTENTI####
$sql_utente = "SELECT * FROM tw_utenti WHERE nickname = '" . $nickname_controllato . "' AND password = '" . $password_controllata . "' AND session_key = '" . $session_key . "'";
$query_utente = mysql_query($sql_utente);
$row_utente = mysql_fetch_array($query_utente);
$row_utente_n = mysql_num_rows($query_utente);
if ($row_utente_n == 0) {
echo "utente non connesso";
} else {
echo "utente connesso";
}

Rispondi quotando