Eddie: HTTP_REFERER / Browserunterstützung

Hi, ich moechte HTTP_REFERER in einem PHP-Script verwenden.
Dazu zwei Fragen:

  • was enthält HTTP_REFERER wenn der Browser das Ganze NICHT unterstuetzt?

  • welche Browser unterstuetzen HTTP_REFERER, bzw. welche nicht?

==> womit sich auch der Grund zur ersten Frage erklaert: ich kann's aus Unwissenheit selbst nicht testen, mein Browser tut's naemlich.

Danke Euch, Eddie

  1. hi

    Jeder Browser kennt HTTP-Referrer, ABER man kann die Dinger fälschen oder abschalten (= durch einen leeren String "" ersetzen)!

    Grüße aus Bleckede

    Kai

    1. ... ABER man kann die Dinger fälschen oder abschalten (= durch einen leeren String "" ersetzen)!

      Ich will das Ganze nur Seitenintern verwenden (um dem User einen Cancel-Button zu bieten):
      wuerde es denn genuegen, zu checken, ob ein leerer String vorliegt und nur in diesem Fall auf eine Standardseite zu linken?
      Oder muss ich davon ausgehen, dass ich solche User dann aus Versehen auf irgendeine XXX-Seite schicke (und sie ausserdem gleich verliere)?

  2. Hi,

    Hi, ich moechte HTTP_REFERER in einem PHP-Script verwenden.

    besser nicht, denn...

    • was enthält HTTP_REFERER wenn der Browser das Ganze NICHT unterstuetzt?

    ...nichts.

    • welche Browser unterstuetzen HTTP_REFERER, bzw. welche nicht?

    Fast alle können ihn übermitteln, bei einigen lässt sich das abschalten, bei anderen sogar manipulieren. Ich sende zB keine Refer(r)er, baue also darauf keine Scripts auf - das ersetzt keinen geschützten Zugang bzw. Login-Mechanismus.

    LG Orlando

    <img src="http://skop.net/self/opera_pref.gif" border=0 alt="">
    (Opera, siehe "URL-Referenz übertragen")

  3. Hi,

    Hi, ich moechte HTTP_REFERER in einem PHP-Script
    verwenden.

    solange Du nichts Wichtiges damit anfangen willst -
    bitte sehr. ;-)

    • was enthält HTTP_REFERER wenn der Browser das
      Ganze NICHT unterstuetzt?

    So darfst Du die Frage nicht stellen.

    Es gibt eine ganze Menge Situationen, in denen kein
    sinnvoller Wert geliefert werden kann.

    • Ist der Referrer eines Frame der Frameset?
    • Ist der Referrer eines per "Öffnen in neuem Fenster"
        aktivierten Links das alte Dokument?
    • Soll von einer HTTPS-Seite an eine HTTP-Seite ein
        Referrer übertragen werden, oder ist das ein
        Sicherheitsproblem?
      All diese und viele weitere Fragen müßtest Du Dir
      stellen - und schlimmer noch, Du müßtest damit leben,
      daß es für keine dieser Fragen eine eindeutige Antwort
      gibt und daß jeder Browser-Hersteller jede dieser
      Fragen irgendwie für sich selbst beantwortet hat.
    • welche Browser unterstuetzen HTTP_REFERER, bzw.
      welche nicht?

    Keiner unterstützt ihn so, wie Du das gerne hättest;
    im Gegenteil wird es bei modernen Browsern immer ein-
    facher, _nicht_ das zu senden, was Du erwartest.
    Das alleine ist aber noch gar nicht das Problem.

    Auf dem Weg zwischen meinem Browser und Deinem Server
    können beliebig viele andere Instanzen meine HTTP-
    Header irgendwie umschreiben. Das könnte beispiels-
    weise die Personal Firewall auf meinem PC sein, die
    Dir nicht sagen will, bei welcher Bank ich gerade
    eine Transaktion getätigt habe; es könnte auch der
    Proxy-Server unserer Firma sein, der nach "draußen"
    ins "wilde web" keine Informationen über Namen bzw.
    IP-Adressen firmeninterner Server senden will.

    Referer sind einfach "broken by design".

    ==> womit sich auch der Grund zur ersten Frage
    erklaert: ich kann's aus Unwissenheit selbst nicht
    testen, mein Browser tut's naemlich.

    Nein, Dein Browser tut es auch nicht.

    Er kann es vor allem alleine gar nicht erzwingen - er
    kann es nur stören, genau wie viele andere es auch
    können (und tun).

    Viele Grüße
          Michael

  4. Ok, danke Euch fuer die Infos!
    Hab jetzt drauf verzichtet und uebergebe den 'back'-Link jetzt per Argumentliste (z.B. 'seite2.php?r=seite1.php=?l=de_t=15')
    Und das '_' muss ich im Empfaengerscript noch gegen '&' austauschen.
    Nervt halt, weil mein Script jetzt seinen eigenen Link erzeugen muss.

    Thanx, gutNacht.

    1. Hi,

      Hab jetzt drauf verzichtet und uebergebe den 'back'-Link jetzt per
      Argumentliste (z.B. 'seite2.php?r=seite1.php=?l=de_t=15')

      ^^

      Und das '_' muss ich im Empfaengerscript noch gegen '&' austauschen.

      Das markierte Fragezeichen ebenfalls, und das '='-Zeichen gefällt mir
      an dieser Stelle auch nicht.

      Nervt halt, weil mein Script jetzt seinen eigenen Link erzeugen muss.

      Dafür hast Du nun die Kontrolle, ob das passiert oder nicht ...

      Viele Grüße
            Michael