suit: wo ist der fehler

Beitrag lesen

7 hab ich gefunden, will aber nicht aussschließen, daß es noch mehr gibt.

(PS: Keine verbesserungsvorschläge, ich behalte dieses sowieso )

Wieso fragst Du dann?

Ich liefere trotzdem einen weiteren Fehler - und zwar einen Designfehler

  1. Warum prüft nicht die Datenbank direkt beim SELECT auf username und passwort?

Wozu macht das PHP?

SELECT COUNT(username)  WHERE username = 'user' AND password = 'pass';

Wenn 1 Datensatz zurückkommt, passt die Sache. Wenn 0 Datensätze geliefert werden, ist das Login ungültig, der Benutzer existiert nicht oder das Passwort ist falsch[1] - sollten 2 oder mehr Datensätze geliefert werden, hast du einen Fehler im System.

[1] diese Information hat den, der den Loginversuch tätigt aber nicht zu interessieren). Lustige informationen wie "Benutzername gibts nicht" oder "Benutzername richtig aber Passwort falsch" helfen bei Brute-Force-Attacken ungemein.