Andavos: Login Script

Beitrag lesen

Hallo,
dies wäre möglich, allerdings benutze ich lieber die IF Anweisung:
SELECT * FROM tabelle WHERE username = '$username' AND pw = '$pw';

Weil man username = '$username' schreibt, wird auch zwischen Groß- und Kleinschreibung unterschieden, was ich nicht so schön finde, denn oft weiß ich nicht, ob ich jetzt den Namen Groß- oder Kleingeschrieben habe.

Benutzt man LIKE würde ein weiteres Problem auftreten:
SELECT * FROM tabelle WHERE username LIKE '%' AND pw ='geheim';

Als Username wurde ein % angegeben, und somit wird nur noch das PW überprüft => wenn jmd. das PW benutzt wird mal als dieser eingelogt.

Desweiteren ist diese Abfrage anfälliger gegenüber SQL Injection:
SELECT * FROM tabelle WHERE username LIKE 'andavos';' AND pw ='geheim';

Also Username wurde: andavos'; angegeben. Und da dieser Eintrag in der DB vorhanden ist, werde ich als andavos (oder als Admin) eingelogt.

Das gleiche könnte auch bei pw sein.

Wenn ich eine IF-Anweisung die Daten überprüfen lasse, funktioniert dieser Weg nicht mehr, denn der PW + Username wird dort nocheinmal extra überprüft.

Auch wenn man sich gegen SQL Injection etc. schützt, so finde ich diese Variante einfach sicherer und auch komfortabler.

P.S. Die meisten Anfänger wissen nicht was eine SQL Injection ist, und falls der Schutzt (magic_quotes) auf Off steht, kann man so ganz leicht den Login umgehen.

MFG
Andavos