ewigerstudent: PHP-Session-ID verfälscht Textfeldinhalt

Hallo,

ich habe folgendes Problem. Habe ein kleines Formular mit einem Textfeld (TEXTAREA). In diesesm Textfeld kommt auch HTML-Code vor, somit auch Hyperlinks. Wenn ich das Formular jetzt abschicke, wird automatisch auch an diese Links die PHP-Session-ID angehängt.
Wie kann ich das unterdrücken / verhindern? (Provider: Puretec)

Vielen Dank schon mal im Voraus.

Gruß
ewigerstudent

  1. Moin!

    Nun... Dein Problem ist vermutlich, dass die Session-ID im Referer mit übertragen wird und dann in den Logs des anderen Servers sichtbar wird.. (Die Beschreibung ist schlicht "wirr").

    Lösung:

    Lege alle Links so, dass nicht das Ziel direkt angsprochen wird, sondern eine derefer.php.

    Die Links sollten dann so aussehen:

    <a href="derefer.php?ziel=http://www.wasweisich.wo">Klickmich</a>

    Die derefer.php:

    <?php
    $mylocation="Location: ".$_GET['ziel'];
    header(mylocation)
    ?>

    Vorsicht einige Tools (Webwasher...) meinen gutgläubig dem Benutzer anbieten zu müssen, sowas auszufiltern, der Link geht dann direkt und die Session ID wird wieder übertragen..., wenn der Benutzer nicht auch die Übertragung des Referer's abstellt. Du solltest davor warnen, wenn es sicherheitsrelevant ist.

    Möglichkeit 2: session nur über Cookies. Hat auch Nachteile: manche stellen Cookies ganz ab, bei den funktioniert dann die Session nicht.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
  2. Moin!

    ich habe folgendes Problem. Habe ein kleines Formular mit einem Textfeld (TEXTAREA). In diesesm Textfeld kommt auch HTML-Code vor, somit auch Hyperlinks. Wenn ich das Formular jetzt abschicke, wird automatisch auch an diese Links die PHP-Session-ID angehängt.

    Bist du dir sicher, dass dies beim Abschicken passiert?

    PHP verfügt über die Möglichkeit, alle Links, die auf den lokalen Server zeigen, mit einer Session-ID als Parameter zu versehen. Dies passiert, wenn PHP keinen Session-Cookie empfangen hat. Insofern würde ich erstmal davon ausgehen, dass das Formular ordnungsgemäß empfangen wurde und nur bei der erneuten Ausgabe die ID angehängt bekommt.

    Wie kann ich das unterdrücken / verhindern? (Provider: Puretec)

    Mache dir klar, wo die Session-ID rankommt.

    Bei normalen Links im Dokument ist dieses Verhalten absolut in Ordnung.

    Wenn du die IDs auch in deine Textarea bekommst, wenn du die Eingabe erneut bearbeiten willst, dann befüllst du deine Textarea falsch. Gib testweise mal "</textarea>" ganz als erstes ein und bearbeite den gespeicherten Text dann wieder. Solltest du nur noch eine leere Textarea (und den erwünschten Inhalt darunter) vorfinden: htmlspecialchars() verwenden. In einer Textarea dürfen keine HTML-Tags stehen. Deshalb sind alle HTML-Sonderzeichen wie <, > und & in ihre Entities zu wandeln.

    PHP wird vermutlich HTML-Tags sehen und eine Session-ID dranhängen, weil du nicht in Entities gewandelt hast.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
  3. Vielen Dank für die schnelle Hilfe!

    @Sven:

    PHP wird vermutlich HTML-Tags sehen und eine Session-ID dranhängen, weil du nicht in Entities gewandelt hast.

    Genau, das war das Problem! ;o)

    Danke nochmals!

    Gruß
    ewigerstudent