Qualcuno può elencarmi i metodi più sicuri per gesrite il log-in degli utenti?
Conosco già le cookie e qualcosa sulle sessioni.
Grazie
Qualcuno può elencarmi i metodi più sicuri per gesrite il log-in degli utenti?
Conosco già le cookie e qualcosa sulle sessioni.
Grazie
Ci sono diversi script su http://php.html.it/ prova a cercare lì qualcosa tipo "login" o "dev login"
foreach
Codice PHP:
foreach($vettore as $chiave => $valore) {
echo "Ciao";
}
Principalmente i metodi sono questi, ce ne sarebbero altri ma decisamente meno "sicuri" (nel senso di meno affidabili), come registrare i login su file o su database (in questo caso, è molto più difficile gestire interruzioni "brutali" della sessione utente).
Stammi bene...
Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?
When you don't know your next step... improvise
ALTERVISTA WANTS YOU!
Vuoi diventare moderatore su AlterVista? Scopri come...
Potreste aiutarmi a finire la mia pagina di acccesso con il metodo che ritenete più sicuro?
Codice PHP:
if((!$username2) || (!$password2)){
$reqmsg= "<font class=\"error1\">*Richiesto</font>";
if(trim(empty($username))){
$user_err= $reqmsg;
}
if(empty($password)){
$pass_err= $reqmsg;
}
} else {
/*** Ricerca Nome ***/
$query = "SELECT username FROM ".$prefix."_users WHERE username = '$username2'";
$result = mysql_query ($query);
if (mysql_num_rows($result) == 0) {
$user_err= "<font class=\"error1\">*Username Errato</font>";
} else {
/*** Completamento ***/
$query = "SELECT password, active FROM ".$prefix."_users WHERE username = '$username2'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$password = $row['password'];
$active = $row['active'];
if ($active == 0)
{
$general_err= "<font class=\"error1\">*Questo profilo non risulta attivato</font>";
}
if ($md5_password != $password)
{
$pass_err= "<font class=\"error1\">*Password Errata</font>";
}
else {
$query = "UPDATE ".$prefix."_users SET lastlogin=NOW() WHERE username = '$username2'";
}
Grazie per la disponibilità
A parer mio quello delle sessioni è il migliore. Usarlo in accoppiata con i cookie può dare alcuni vantaggi nei controlli. Ricorda che i cookie sono modificabili dall'utente poichè risiedono sul suo terminale, quindi NON utilizzare solo il metodo dei cookie. ;)
Scusa ma invece di fare due query, non ti conviene comparare automaticamente username e password? Così sai che se matchano hai un risultato (mysql_num_rows == 1) altrimenti se è 0 i dati sono errati. Io farei così:
Sia chiaro è un punto di inizio. É un abbozzo con l'uso delle sessioni... provalo, vedi se funziona ed adattalo al tuo script. Ho levato parecchia roba dal tuo perchè a mio giudizio sembravano fronzoli inutili, nel caso reintegra le parti tagliate. Potresti stampare il form direttamente nella pagina login, mettergli come action la variabile $_SERVER['PHP_SELF'] e controllare se gli vengono passati i dati (mediante POST, sarebbe preferibile): in caso negativo, stampa il form e basta, altrimenti esegue le query del caso e verifica se l'utente esiste e può autenticarsi (nel caso, lo fa autenticare ovviamente). In alternativa, la variabile $err viene stampata sotto al form...Codice PHP:
session start();
if((!$username2) || (!$password2)){
$reqmsg= "<font class=\"error1\">*Richiesto</font>";
if (trim(empty($username)))
$user_err= $reqmsg;
if(empty($password))
$pass_err= $reqmsg;
} else {
/*** Ricerca Nome ***/
$query = "SELECT username FROM ".$prefix."_users
WHERE( (username = ' . $username2 . ') AND (password = ' . md5($password2) . ') );";
$result = mysql_query($query);
if (mysql_num_rows($result) == 1) {
// Crea la sessione
$_SESSION["username"] = $username2;
$_SESSION["password"] = md5($password2);
// Aggiorna il campo lastlogin dell'utente
$query = "UPDATE ".$prefix."_users SET lastlogin = NOW()
WHERE username = ' . $username2 . ');";
mysql_query($query)
or die("Impossibile aggiornare il campo lastlogin");
} else
$err = "Nome utente o password errati";
Insomma vedi tu. Utilizzare script già fatti secondo me ti conviene solo se non hai reali conoscenze di programmazione.
Ultima modifica di mksoftware : 22-10-2009 alle ore 17.58.26