Login-System

Dem kann ich mich nur anschließen.

Bzgl. Datenbank: in der DB sollte niemals das PW stehen, sondern nur der (hier mühsam erarbeite) Hash.
 
QUOTE (cr4m0 @ Sa 1.03.2008, 14:03) Gut, ich verarbeite alle Eingaben mit strip_tags() und addslashes(), das sollte dann reichen, oder?

htmlentities() ist imho besser als strip_tags() und mysql_real_escape_string() ist besser als addslashes(). Ansonsten mal hier schauen was es alles für XSS-Methoden gibt.
 
Danke nochmal für die vielen guten Antworten!

1) Die Seite mit den XSS-Methoden ist sehr interessant. Bei mir funktioniert jedoch keine davon!
smile.gif

2) Ich habe jetzt überall addslashes() durch mysql_real_escape_string() ersetzt, da es wirklich sicherer ist. strip_tags() habe ich jedoch gelassen, weil es etwas völlig anderes ist als htmlentities(). strip_tags() löscht die Tags, htmlentities() wandelt sie um.
3) Gegen SQL-Injektionen ist meine Seite auf jeden Fall gesichert. Auch XSS scheint nicht möglich zu sein, zumindest habe ich es in meinen Tests nicht geschafft.

Was meint ihr denn jetzt: Ist es wirklich so schlecht, die Benutzernamen und das Passwort (Hash+Salt) in einem Cookie zu speichern? Das Cookie mit der Session-ID kann ja genauso gestohlen werden wie auch das Cookie mit den Benutzerdaten. Wo liegt also der Vorteil vom Cookie mit der Session-ID? Man kann die Benutzerdaten aus dem Cookie ja eh nicht auslesen, weil man das Salt nicht kennt und das Passwort verschlüsselt ist.
 
QUOTE (cr4m0 @ So 2.03.2008, 00:26)Ist es wirklich so schlecht, die Benutzernamen und das Passwort (Hash+Salt) in einem Cookie zu speichern? Das Cookie mit der Session-ID kann ja genauso gestohlen werden wie auch das Cookie mit den Benutzerdaten. Wo liegt also der Vorteil vom Cookie mit der Session-ID?

Eigentlich ist das eine prinzipielle Frage. Es gibt das 'Prinzip der minimalen Rechte' (Principle of least Privilege): Immer nur das verwenden, was minimal zur Erfüllung der Aufgabe notwendig ist.

Da eine Session-ID zur Zweckerfüllung genügt und diese keine Information über Nutzername / Passwort enthält, ist diese Lösung vorzuziehen.

Insofern kann man das durchaus als Prinzipienreiterei betrachten - die sich allerdings durchaus bewährt hat.

Es gibt einfach keinen Grund, Nutzername und Passwort standardmäßig zu exportieren.

Für den Artikel Datenbank-Systeme für Web- und lokalen Zugriff: Merkmale einer sicheren Architektur, den ich nach Gesprächen mit jemandem aus dem Datenschutz-Bereich geschrieben hatte, habe ich die Geschichte dieses Prinzips der minimalen Rechte ein klein wenig recherchiert. Links finden sich ganz am Ende des Artikels. Das Prinzip wurde zum ersten Mal 1975 formuliert.
 
Zurück
Oben