Session ID Fehlermeldungen abfangen
Sam
- php
0 wahsaga0 Sam0 Sven Rautenberg0 Sam
0 Dennis
Hallo,
wenn die Session ID ungültig ist, weil sie zb. abgeschnitten wurde oder irgendein Witzbold ungültige Zeichen einträgt, kommen immer gleich alle möglichen Fehler. Wie kann ich diese Fehler am besten abfangen und verarbeiten?
Gruß, Sam
hi,
wenn die Session ID ungültig ist, weil sie zb. abgeschnitten wurde oder irgendein Witzbold ungültige Zeichen einträgt, kommen immer gleich alle möglichen Fehler. Wie kann ich diese Fehler am besten abfangen und verarbeiten?
diese fehler müssen in deiner verarbeitungslogik liegen.
die kennt aber keiner von uns.
gruß,
wahsaga
Da ist keine große Verarbeitungslogik dahinter. Wenn die Session ID per GET übergeben wird, ist sie sehr leicht zu verändern. Trägt da jetzt jemand {ä&123$%}1212 ein, gibts einen Fehler, dass ungültige Zeichen enthalten sind. Natürlich kann auch die Session ID per POST oder Cookie verändert werden, ist aber eben nicht so einfach.
ir ist bis jetzt folgender Lösungsweg eingefallen: $_REQUEST['sid'] per preg_match prüfen, stimmt was nicht wird $_REQUEST['sid'] = '' gesetzt. Ist das eine gute Lösung?
Gruß, Sam
Moin!
Da ist keine große Verarbeitungslogik dahinter. Wenn die Session ID per GET übergeben wird, ist sie sehr leicht zu verändern. Trägt da jetzt jemand {ä&123$%}1212 ein, gibts einen Fehler, dass ungültige Zeichen enthalten sind.
Ja und? Wer so manipuliert, der muß sich nicht wundern, oder? Abgesehen davon: Welche Fehlermeldung kommt tatsächlich? Die Session-ID ist zeichenmäßig nämlich absolut nicht beschränkt auf Hexzahlen, da kann im Prinzip alles drinstehen, wenn man will.
Natürlich kann auch die Session ID per POST oder Cookie verändert werden, ist aber eben nicht so einfach.
Eben genau deswegen gibts ja den eingebauten Session-Mechanismus von PHP, der sehr gut funktioniert.
ir ist bis jetzt folgender Lösungsweg eingefallen: $_REQUEST['sid'] per preg_match prüfen, stimmt was nicht wird $_REQUEST['sid'] = '' gesetzt. Ist das eine gute Lösung?
Nein, das ist keine gute Lösung, weil du nicht weißt, ob PHP die Session-ID überall unter dem Parameter "sid" anhängt. Manche nutzen auch "PHPSESSID", andere noch ganz was anderes.
- Sven Rautenberg
Abgesehen davon: Welche Fehlermeldung kommt tatsächlich? Die Session-ID ist zeichenmäßig nämlich absolut nicht beschränkt auf Hexzahlen, da kann im Prinzip alles drinstehen, wenn man will.
Diese: session_start(): The session id contains invalid characters, valid characters are only a-z, A-Z and 0-9 ...
Natürlich ergeben sich dann jede Menge Folgefehler, weil eine Fehlermeldung ausgegeben wurde, bevor alle header Daten gesendet wurden, etc. Jedenfalls ist das die Hauptfehlermeldung.
Nein, das ist keine gute Lösung, weil du nicht weißt, ob PHP die Session-ID überall unter dem Parameter "sid" anhängt. Manche nutzen auch "PHPSESSID", andere noch ganz was anderes.
Doch, da ich der Session per session_name den Namen sid zuweise, ausserdem hänge ich sie selbst an alle Links und lasse das nicht von PHP erledigen. Habe ich vergessen zu erwähnen.
Gruß, Sam
Hi Sam,
wenn die Session ID ungültig ist, weil sie zb. abgeschnitten wurde oder irgendein Witzbold ungültige Zeichen einträgt, kommen immer gleich alle möglichen Fehler. Wie kann ich diese Fehler am besten abfangen und verarbeiten?
wahsaga hat dir ja schon die richtige antwort gegeben, es muss irgendwo an dir liegen, dass da Fehler kommen.
Aber abgesehen davon kannst du eine SESSION ID, die ja nur aus Zahlen und Buchstaben besteht und immer X Zeichen lang ist (in der php.ini festgelegt, mit ini_get() abrufen) auch prima mit preg_match() überprüfen.
MfG, Dennis.