Tris: HTTP_REFERER

hi...

ich wollte mal wissen, wie das mit dem http_referer ist..
soweit ich weiss, wird der nur ausgegeben, wenn folgende bedingungen (unter php) erfüllt sind:

  • php muss als modul im apache laufen (also nicht als cgi)
  • der browser muss die variable mitsenden können (welcher tut das und welcher tut das nicht?)

wär cool, wenn mir dazu jemand was schreiben könnte...

danke und bye

tris

  1. Hallo,

    • der browser muss die variable mitsenden können (welcher tut das und welcher tut das nicht?)

    Selbst "können" muß man differenzierter sehen: Bei modernen Browsern kann das Senden des Referers ausgeschaltet werden. Und falls es im Browser selbst nicht abgeschaltet werden kann, so kann immer noch ein Proxy dazwischengeschaltet sein, der den Referer herausfiltert.

    Viele Grüße
    Carsten

    1. Hallo,

      • der browser muss die variable mitsenden können (welcher tut das und welcher tut das nicht?)

      Selbst "können" muß man differenzierter sehen: Bei modernen Browsern kann das Senden des Referers ausgeschaltet werden. Und falls es im Browser selbst nicht abgeschaltet werden kann, so kann immer noch ein Proxy dazwischengeschaltet sein, der den Referer herausfiltert.

      Viele Grüße
      Carsten

      hmmm...
      und was ist mit der sache, ob php als cgi oder modul läuft? und was gibts noch zu beachten?

      1. Hi Tris,

        und was gibts noch zu beachten?

        reicht Dir die Tatsache, daß der Referrer einen höchst zufälligen Wert enthalten kann (eventuell sogar einen absichtlich verfälschten, als Geheimhaltungsgründen einer Firmen-Firewall etc.), nicht aus, um seine systematische Auswertung grundsätzlich zu verwerfen?

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
         => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  2. ich wollte mal wissen, wie das mit dem http_referer ist..
    soweit ich weiss, wird der nur ausgegeben, wenn folgende bedingungen (unter php) erfüllt sind:

    • php muss als modul im apache laufen (also nicht als cgi)

    Da wäre ich mir nicht so sicher. Dei CGI-Schnittstelle definiert einen ganzen Haufen Variablen, zu denen auch die HTTP-Kopfdaten zählen, die der Browser gesendet hat (inklusive HTTP_REFERER, siehe http://hoohoo.ncsa.uiuc.edu/cgi/env.html).
    Es ist aber nicht auszuschließen, daß diese Daten woanders erscheinen, statt in $_SERVER (Modulversion) beispielsweise in $_ENV (CGI-Variablen sind stinknormale Umgebungsvariablen).

    • der browser muss die variable mitsenden können (welcher tut das und welcher tut das nicht?)

    Können tun es alle HTTP-Clients, machen tun es die meisten, abschaltbar ist es bei bestimmt 3/4 der am Markt befindlichen, bedeutenden Browser, als da wären: IE, Mozilla, Netscape, Opera. Zusätzlich gibt es diverse Programme, mit denen sich auch die Auskunftsfreudigkeit des IE abwürgen lässt, Stichwort Webwasher & Co.

    Die dritte Variante hast Du übrigens vergessen: Es muß eine verweisende Quelle benutzt worden sein. Wenn Du die Adresse direkt eintippst, bekommst Du sinnigerweise auch kein HTTP_REFERER, selbiges gilt bei Auswahl aus den Lesezeichen/Favoriten (mit Ausnahme einiger Browser, die "[bookmarks]" o.ä. senden).

    Gruß,
      soenk.e