Ein paar grundlegende Sachen zur Sicherheit in PHP / MySQLi

Das heißt im Umkehrschluss eigentlich ich kann mir den Quatsch auch ersparen, bringt mir eh keine wirkliche Sicherheit ein?

P.S: kennst Du dich mir RewriteRules im htaccess aus? Ich hab da noch ein kleines Problemchen, aber dazu gibt es einen anderen Thread. Weiß nicht ob es der Netiquette entspricht wenn ich hier auch noch darauf verweise :rolleyes:
 
Dann muss man sich eben registrieren ... falls das für jeden möglich ist ändert sich nicht wirklich was.
(Außer, dass viele Leute nicht wissen werden, dass es dieses Bild überhaupt gibt, weil Google usw. auch nichts mehr zeigt).
 
Okay danke für die Infos.

Und hier nochmal eine weitere Frage:

Ist das Auswerten eines Formulars bei mehreren Seiten via Session Variablen sicherer? Ich könnte ja auch die Daten mittels URL weitergeben etc. (Zum Beispiel könnte ich die Daten auch speichern, um bei Fehleinhaben nicht tausend Sachen per URL übergeben zu müssen?)

Wie verhält sich das bei der Session? Wenn ich die zusätzlichen Parameter festlege, sollte ich diese dann nach erfolgreicher Übergabe wieder zerstören? Muss ich sonst etwas dabei beachten?
 
Ist das Auswerten eines Formulars bei mehreren Seiten via Session Variablen sicherer?
Wie schon geschrieben, die Session ist und bleibt nur auf dem Server. Du kannst du da drin ohne Probleme die Daten ablegen, wenn du diese über mehrere Seiten brauchst. Genau dafür sind die Session da :)

Ich könnte ja auch die Daten mittels URL weitergeben (Zum Beispiel könnte ich die Daten auch speichern, um bei Fehleinhaben nicht tausend Sachen per URL übergeben zu müssen?)
Das exponiert die Daten nach aussen und du musst vor der endgültigen Verarbeitung diese nochmals verifzieren. Da du diese normalerweise nach jedem Formular sowiso überprüfst, musst du das dann mehrfach machen. Das sorgt für neue Angriffsflächen, von daher würde ich das eher vermeiden.
Speichern? Ja, in der Session? :)

Wie verhält sich das bei der Session? Wenn ich die zusätzlichen Parameter festlege, sollte ich diese dann nach erfolgreicher Übergabe wieder zerstören? Muss ich sonst etwas dabei beachten?
Würde ich schon machen, ansonsten kannst du nämlich ganz hässliche Seiteneffekte bekommen, wenn der Benutzer den Zurück-Button im Browser verwendet (Formulare alle ausgefüllt, letzten Schritt starten (Aktion ausführen), nochmal zurück auf die letzte Seite, nochmal Aktion ausführen?

Generell würde ich dir empfehlen, deine Sessions immer nöglichst "sauber" zu halten. Die Daten nur so lange da drin speichern, wie du die auch wirklich benötigst.
Was bisher noch nicht erwähnt wurde: Bei einem Login auf alle Fälle eine neue SessionID erzeugen. Warum? Angenommen ich rufe die Seite auf und bekomme eine ID. Dann schicke ich dir einen Link wie example.com/?PHPSESSID=meineId und du meldest dich an. Dann hab ich eine gültige SessionID mit deinen Rechten. Nennt sich dann Session Fixation

Grüsse,
BK
 
Das heißt ich prüfe ob eine Session registriert ist und lösche diese mit destroy und starte dann erneut eine Session in der Login.php?

Nochmal eine generelle Fragen zu Variablen. Hatte ich schon, aber wurde eventuell überlesen. Variablen initialisieren vor den Scripten: Macht es Sinn alle Variablen in eine Datei zu speichern und dort default Werte festzulegen? Oder lieber in dem jeweiligen Script vorher? Reicht es die Variablen auf false zu setzen? (Dann in den Skripten immer prüfen !false) Oder müssen bei manchen Werte wie 0 vergeben werden?
 
Hi,

die alte Session musst du nicht unbedingt ungültig machen, es reicht wenn du im Login eine neue Session startest und die Logindaten nur dorthin abfüllst.

Ich initialisiere Variablen dort, wo ich sie brauche. Wenn du die irgendwo her hast, dann besteht die Gefahr, dass du Variablen zum Beispiel doppelt verwendest und somit falsch initialisiert sind.
Von der Sichtbarkeit / vom Zugriff her versuche ich diese möglichst "eng" zu halten. Nichts globales (ausser $_SESSION), nur innerhalb von Funktionen oder zumindest geschweiften Blöcken.

Grüsse,
BK
 
Zurück