Sam: Session ID Fehlermeldungen abfangen

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

  1. 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

    --
    Rest in peace, Dimebag!
    #
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. 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

      1. 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

        1. 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

  2. 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.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    Newbies aufgepasst: Auf viele Fragen findet man eine
    Antwort im Archiv, das man auch durchsuchen kann