Hilfe beim "Login-System"

Beim Passwort frag ich mich immer: Warum beim Login ueberhaupt an die Datenbank uebergeben?
Am Anfang gibt der User seinen Usernamen und sein Passwort ein, und wenn alles okay ist soll am Ende die UserID in die Session geschreiben werden.
Um an die UserID zu kommen muss ich doch eh die User-Daten aus der Datenbank holen, dementsprechend kann man es sich doch sparen das Passwort an diese zu uebermitteln.
So ungefaehr sieht mein Login aus:
PHP:
$users=mysql_query("select * from `users` where `username`='".quote_string($_POST['username'])."'");
$user=mysql_fetch_assoc($users);
$passwordhash=sha1($_POST['password']);
if ((!empty($user)) && ($passwordhash==$user['password']))
{
 $_SESSION['id']=$user['id'];
}
Nicht ganz so, aber ungefaehr.
quote_string() ist uebrigens eine selbst zusammengestrickte Funktion die ungefaehr Beispiel 3 bei mysql_real_escape_string() in der PHP-Doku.

Dr Dau hat gesagt.:
da aber bei einem Login nicht zu erwarten ist dass der User nur einen Teil seines Usernamens und/oder Passworts eingibt, kannst Du getrost auf LIKE verzichten.
Nicht zu erwarten? User die ueberhaupt ansatzweise auch nur auf die Idee kommen gehoeren oeffentlich gesteinigt.
Wie Dr Dau schon sagt, LIKE hat bei einem Login absolut nichts verloren.
 
Dennis Wronka hat gesagt.:
Beim Passwort frag ich mich immer: Warum beim Login ueberhaupt an die Datenbank uebergeben?
Stimmt auch wieder..... aus der Sichtweise habe ich es noch garnicht betrachtet.....
Denn genauso wenig wie es zu erwarten ist dass ein User sich mit halben Benutzernamen/Passwort einlogen kann, ist es auch nicht zu erwarten dass es einen Benutzernamen mehrfach gibt. ;)
Aber was genau würde es bringen?
Mehr Sicherheit?
Mehr Performance?
Hmm..... *kurz nachdenke*
Nagut, vergiss meine Frage wieder..... mit der Sicherheit kann ich nachvollziehen..... und die sollte Grund genug sein. ;)
 

Neue Beiträge

Zurück