Ich habe da mal eine Frage zur Sicherheit:
Ich habe den Auftrag ein Warenkorbsystem in PHP und MySql zu programmieren, wobei der gesamte Warenkorbbereich durch Login geschützt werden soll, d.h. der ganze Bereich darf nur angezeigt werden, wenn der User sich mit dem richtigen Passwort und Benutzernamen, den ich (oder die Firma) ihm zuweist.
Die Benutzerdaten sind in einer MySql Tabelle gespeichert. Das Ganze funktioniert folgendermassen:
Der User gibt sein Klartextpasswort und Benutzernamen ein. Diese Formulardaten werden über eine SSL Verbindung gesendet. Das Passwort ist in der DB mit MD5 verschlüsselt und setzt sich aus
MD5(Benutzername*Klartextpasswort) zusammen. Stimmen die so verschlüsselte Daten, mit dem verschlüsselten Passwort in der DB überein, wird der Username in einer anderen Tabelle zusammen mit einer Session ID (10stellige Zufallszahl, die jedesmal neu erzeugt wird) als eingeloggter User eingetragen. Diese SessionID identifiziert den User auf jeder Seite des Warenkorbsystems und dient auch als ID für den Einkauf/Bestellvorgang.
Diese temporären Daten werden aus der Tabelle wieder gelöscht, wenn der User sich ausloggt oder eine bestimmte Zeit vergangen ist, ohne das der User etwas ge,acht hat (Timeout). An jede Seite des Warenkorbsystems wird diese Session ID übergeben und überprüft, ob der User noch angemeldet ist. Außerdem wird das Ganze System mit SSL übertragen.
Über die URL kann man übrigens nichts erreichen (Stichwort Query), daß fange ich mit PHP ab !
Gibt es hier noch irgendwelche Sicherheitslöcher, oder ist es OK so ?