Datenbank

SQL-Injection-sichere Benutzeranmeldung

Erstellt am Mittwoch, dem 10. November 2010, geändert am Donnerstag, dem 25. November 2010

Nach langer Pause endlich wieder Zeit gefunden etwas zu schreiben .

Eine eigene Benutzeranmeldung mit PHP und MySQL zu schreiben ist einfach (zumindest, wenn man sich mit der Materie auskennt). Hier möchte ich einen kurzen sicherheitsrelevanten Tipp dazu abgeben. Bei den meisten Skripten wird der Benutzername erst mit der PHP-Funktion “mysql_real_escape_string” maskiert und anschließend über ein Query an die Datenbank weitergegeben um den Benutzer zu identifizieren. Da man sich jedoch nicht sicher sein kann, ob es in der Maskierungsfunktion nicht doch ein Schlupfloch für SQL-Injections gibt, kann man folgenden Trick anwenden.

Dazu schneidet man den Benutzernamen nach dem zweiten oder dritten Zeichen ab, maskiert diese Zeichen und lässt sich einfach eine Liste mit allen Benutzern dessen Namen mit den zwei oder drei übergebenen Zeichen anfangen ausgeben. Der Rest, sprich der genaue Vergleich, wird mit PHP in der while-Schleife erledigt. Damit ist eine Abfrage eines definierten Wertes, wie eines Benutzernamen, an die Datenbank absolut sicher vor SQL-Injections.


Zum Artikel Kommentar schreiben