Benjamin Wilfing: HTTP_REFERER

Hallo,

da man sich ja bekannterweise nicht auf die Umgebungsvariable $HTTP_REFERER verlassen kann, da nicht jeder Browser dies unterstützt, aber ich in meinem Formmailer-Skript trotzdem überprüfen muss, von welcher Domain aus die Formulardaten abgeschickt wurden, frage ich nach erfolgloser Suche im Archiv mal direkt: Weiß jemand von euch Alternativen oder hat jemand einen brauchbaren Ansatz ?
Oder kann ich einfach die Zahl der User vernachlässigen, die mir $HTTP_REFERER nicht liefern und eine Weiche à la 'if ($HTTP_REFERER == "") skript_abbrechen();' einbauen ?

Vielen Dank für eure Hilfe :-)

Grüße aus Darmstadt,
Benjamin

  1. Hi Benjamin

    da man sich ja bekannterweise nicht auf die Umgebungsvariable $HTTP_REFERER verlassen kann, da nicht jeder Browser dies unterstützt, aber ich in meinem Formmailer-Skript trotzdem überprüfen muss, von welcher Domain aus die Formulardaten abgeschickt wurden, frage ich nach erfolgloser Suche im Archiv mal direkt: Weiß jemand von euch Alternativen oder hat jemand einen brauchbaren Ansatz ?

    Session-IDs?

    Oder kann ich einfach die Zahl der User vernachlässigen, die mir $HTTP_REFERER nicht liefern und eine Weiche à la 'if ($HTTP_REFERER == "") skript_abbrechen();' einbauen ?

    Keiner meiner Browser überträgt Refer(r)er, du solltest also leere akzeptieren und ggf. bei explizit 'falschen' abbrechen. BTW, meinst du, das dies überhaupt nötig ist? Verdrahte doch die Empfänger-Adresse fix im Formmailer.

    LG Orlando

    --
    SELF-TREFFEN 2002
    http://www.rtbg.de/selftreffen/
    http://www.megpalffy.org/temp/penneninhh.html

    1. Hi,

      Session-IDs?

      Ja, aber wie würde mir das weiterhelfen (Konstellation siehe unten) ?

      BTW, meinst du, das dies überhaupt nötig ist? Verdrahte doch die Empfänger-Adresse fix im Formmailer.

      Das könnte ich zwar machen, aber die Konstellation ist folgende: Das Skript liegt auf der Domain xyz.de. Auf dieses Skript sollen verschiedene Benutzer von verschiedenen Domains (und somit sind es verschiedene Empfängeradressen) zugreifen dürfen.
      Das heißt also, ich muß die Empfängeradresse über ein hidden-Feld im Formular angeben.
      Und aus dem Grund ist das ganze schon wieder angreifbar, da dann jeder das Skript benutzen könnte. Und das will mein Auftraggeber sicher nicht...

      Grüße aus Darmstadt,
      Benjamin

      1. Hi,

        Session-IDs?

        Ja, aber wie würde mir das weiterhelfen (Konstellation siehe unten) ?

        nur _deine_ Besucher haben eine aktuelle ID. Wenn du diese im Formular an die Post-Adresse anhängst und im Script abfragst, sollte das AFAIK deine Forderung erfüllen. Ich bin aber kein Programmierer ;)

        BTW, meinst du, das dies überhaupt nötig ist? Verdrahte doch die Empfänger-Adresse fix im Formmailer.

        Auf dieses Skript sollen verschiedene Benutzer von verschiedenen Domains (und somit sind es verschiedene Empfängeradressen) zugreifen dürfen.

        Bevor ich mir da Stress (=Arbeit) mit einem dann vielleicht doch zu knackenden Konzept antue, setze ich lieber mehrere Scripts mit vorgegebenen Empfängern ein.

        LG Orlando

        --
        SELF-TREFFEN 2002
        http://www.rtbg.de/selftreffen/
        http://www.megpalffy.org/temp/penneninhh.html

      2. Das könnte ich zwar machen, aber die Konstellation ist folgende: Das Skript liegt auf der Domain xyz.de. Auf dieses Skript sollen verschiedene Benutzer von verschiedenen Domains (und somit sind es verschiedene Empfängeradressen) zugreifen dürfen.
        Das heißt also, ich muß die Empfängeradresse über ein hidden-Feld im Formular angeben.
        Und aus dem Grund ist das ganze schon wieder angreifbar, da dann jeder das Skript benutzen könnte. Und das will mein Auftraggeber sicher nicht...

        Nein, warum sollte es angreifbar (oder besser: ausnutzbar) sein? Du musst diese mit dem Formular übermittelte Empfängeradresse ja nicht einfach kommentarlos übernehmen.
        Für die Referrer-Lösung benötigst Du eh eine Tabelle, da kannst Du auch genausogut das hidden-Feld mit den Einträgen einer solchen Tabelle vergleichen - wenn's nicht in der Tabelle ist, darf die Gegenstelle das Formular auch nicht benutzen. Und Du mußt noch nichtmal direkt die Empfängeradresse im Formular angeben, sondern kannst auch auf irgendeine eindeutige "Kundennummer" ausweichen.

        Ausnutzen kann das keiner, denn die Empfängeradressen bleiben fest auf Deinem Server.

        Gruß,
         soenk.e