Headdy: Eigene Mitgliederverwaltung und Sicherheit

Beitrag lesen

Hallo Zusammen

Eigentlich würde ich nur gerne wissen, welche Bedenken es bezüglich Sicherheit in meinem Projekt gibt. Ein Problem für die Umsetzung sehe ich nicht, aber würde halt gerne wissen ob ich es sicherheitstechnisch so umsetzen sollte.

Ich habe vor, einen Webauftritt zu gestalten, in dem sich Benutzer registrieren können, um in einen Mitgliederbereich gelangen zu können (mit eigenem Profil), Forum, etc. Beim Registrieren werden die Daten (erstmal Nickname und PW) mit md5 verschlüsselt und in einer MySQL-Tabelle gesichert.
Die Funktionen zum Verbinden mit der Datenbank und die benötigten Tabellen-Funktionen stehen in php-Dateien, die wiederrum in htacces-geschützen Ordnern liegen und includet werden. So sollten die Funktionen auf den MySQL-Tabellen ja halbwegs unsichtbar sein, das ganze also relativ sicher.

Die ganze Seite soll mit SSL-Verschlüsselung laufen.
Will der Benutzer sich später anmelden (mit Login-Formular), werden die Eingabedaten in md5 verschlüsselt und mit dem Nickname/Passwort in der Datenbank verglichen. Wurde ein passender Eintrag gefunden, ist der Benutzer eingeloggt. Ich möchte das ganze ohne Sessions machen (da ich davon nicht viel Ahnung habe und in anderen Foren auf Beiträge mit Problemen bei Sessions gestoßen bin). Damit der Benutzer jedoch beim wechseln der Seiten trotzdem eingeloggt bleibt, müssen ja gewisse Daten (nur die nötigsten) per POST oder GET zur nächsten Seite übermittelt werden (nach dem Motto userpage.php?logged_in=1) :-). Ich denke da z.B. an einen zu übergebenden String, nach dem Prinzip md5(Timestamp+Nickname+Token) (sozusagen "Möchtegern-Session-ID"). Diese wird auch in der MySQL Benutzer-Tabelle temporär gespeichert,solange der Benutzer eingeloggt ist. Bei jedem Seitenwechsel wird dann dieser String per POST übergeben und mit dem in der Datenbank abgeglichen. Loggt sich der Benutzer wieder aus, so wird die "Pseudo-Session-ID" auf 0 gesetzt und eine Row namens "logged_in" auf false oder so ähnlich. So sollte es doch schwer möglich sein, von außen (als fremder Nutzer) in den  geschützen Bereich zu kommen, da dieser String ja nur temporär in der Benutzertabelle steht und schwer zu duplizieren ist. Die Pseudo-Session-ID müsste zum übertragen per POST dann jedoch auf jeder Seite in einem versteckten Formular schlummern. Da liegt mein Bedenken zur Sicherheit.

Damit es für den Benutzer möglich ist zu jeder beliebeigen Seite zu wechseln, müsste folgendes gegeben sein: Der Seitenlink auf den der Benutzer klickt, müsste eine Javascript-Fkt aufrufen, die im Pseudo-Session-ID-Formular, den action-Attribut ändert (auf die gewünschte Seite).

Ist dieses Script dann eine zusätzliche Sicherheitslücke?
Das Prinzip klingt für mich eigentlich relativ konsequent und unbedenklich bis auf die Session-String-Übergabe per Formular und POST.

Habe meinen Webspace bei Strato mit SSL und würde wegen der ständigen Übermittlung von POST-Daten die ganze Seite über SSL laufen lassen.
Danke fürs geduldige durchlesen des Romans.