Eckhart Wörner: Referrer ändern

Hallo,

ich habe eine Seite, auf der Session-IDs in der URL mit übertragen werden.
Andererseits habe ich auch Links auf andere Seiten, auf die ich keinen Einfluss habe.
Ich möchte nun den Referrer "löschen", indem ich eine Zwischenseite aufrufe.
Leider funktioniert ein Redirect mittels header("Location:$url") nicht wirklich, als Referrer wird weiterhin die alte URL angezeigt.

Gruß, Eckhart

  1. Hello,

    Leider funktioniert ein Redirect mittels header("Location:$url") nicht wirklich, als Referrer wird weiterhin die alte URL angezeigt.

    Und was ist, wenn Du

    header("Location: $url");
    header("Referrer: $ref");

    schreibst?

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Leider funktioniert ein Redirect mittels header("Location:$url") nicht wirklich, als Referrer wird weiterhin die alte URL angezeigt.

      Und was ist, wenn Du

      header("Location: $url");
      header("Referrer: $ref");

      Leider nein.

      Gruß, Eckhart

      1. Hello,

        Leider funktioniert ein Redirect mittels header("Location:$url") nicht wirklich, als Referrer wird weiterhin die alte URL angezeigt.

        Und was ist, wenn Du

        header("Location: $url");
        header("Referrer: $ref");

        Leider nein.

        Es müsste die URL angezeigt wrden, von der aus der Redirekt vom Client abgeschickt wird. Denn die Seite erzeugt den Request, so als würdest Du auf einen Link klicken. Ist eigentlich ein gutes Zeugnis für den Client, wenn es nicht geht. Du müsstest einen doppelten Redirect bauen. das müsste gehen.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Moin!

          header("Location: $url");
          header("Referrer: $ref");

          Leider nein.

          Es müsste die URL angezeigt wrden, von der aus der Redirekt vom Client abgeschickt wird. Denn die Seite erzeugt den Request, so als würdest Du auf einen Link klicken. Ist eigentlich ein gutes Zeugnis für den Client, wenn es nicht geht. Du müsstest einen doppelten Redirect bauen. das müsste gehen.

          Mal abgesehen davon, dass man serverseitig den Referrer sowieso nicht setzen kann: Ein Redirect ist hier vollkommen falsch.

          Ein Redirect bewirkt, dass der Client seinen Request wiederholt - diesmal an die im Redirect angegebene URL.

          Und da werden logischerweise sämtlichen Header, die man als Client erlaubterweise mitsenden darf, auch mitgesendet (Cookies und HTTP-Authentifizierung beispielsweise nicht - den Referer schon).

          Es hilft also nix, zwei oder auch hundertmal weiterzuleiten (es gibt ein empfohlenes Maximum, welches IIRC bei 15 Weiterleitungen für einen Request liegt - das ist aber auch schon verdammt viel) - die Lösung muß zwingend darin bestehen, eine neutrale "echte" HTML-Seite auszuliefern, auf der dann ein Meta-Refresh stattfindet. Erst dann wird der Client den Referrer dieser Zwischenseite ausliefern.

          Die Alternative wäre, auf Session-IDs in der URL zu verzichten und zwingend Cookies vorzuschreiben. Dann hätte man das Referrer-Problem ebenfalls nicht.

          - Sven Rautenberg

    2. Moin,

      Und was ist, wenn Du

      header("Location: $url");
      header("Referrer: $ref");

      schreibst?

      Öh, hu? Referer (da sind insgesamt nur 2 'r's drin!) ist ein Request-Header, kein Response-Header. Was soll das?

      --
      Henryk Plötz
      Grüße aus Berlin
      ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
      ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
      1. Hello,

        Moin,

        Und was ist, wenn Du

        header("Location: $url");
        header("Referrer: $ref");

        schreibst?

        Öh, hu? Referer (da sind insgesamt nur 2 'r's drin!) ist ein Request-Header, kein Response-Header. Was soll das?

        Ach ja, das außerdem. Aber probiern kann man das ja mal, ob der Browser kotzt oder es schluckt ;-)

        Wer schreibt denn refer(r)er nun mit zwei r in der Mitte? War das PHP oder war das HTTP? Einer von beiden schreibt es falsch.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Moin,

          Wer schreibt denn refer(r)er nun mit zwei r in der Mitte? War das PHP oder war das HTTP? Einer von beiden schreibt es falsch.

          Referer wird im HTTP-Kontext immer falsch (d.h. mit nur einem r in der Mitte) geschrieben. Das ist ein Fipptehler (nehme ich an) der sich von den ersten Spezifikationen an durchzieht. Jetzt kann man das auch schlecht ändern.

          --
          Henryk Plötz
          Grüße aus Berlin
          ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
          ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
          1. Hi,

            Referer wird im HTTP-Kontext immer falsch (d.h. mit nur einem r in der Mitte) geschrieben. Das ist ein Fipptehler (nehme ich an)

            Beide Schreibweisen sind korrekt.

            Man kann ja auch color oder colour schreiben, oder Router wie "Ruhter" oder "Rauter" aussprechen ... ;-)

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Hello,

              Referer wird im HTTP-Kontext immer falsch (d.h. mit nur einem r in der Mitte) geschrieben. Das ist ein Fipptehler (nehme ich an)

              Beide Schreibweisen sind korrekt.

              Man kann ja auch color oder colour schreiben, oder Router wie "Ruhter" oder "Rauter" aussprechen ... ;-)

              Jein. Wenn aber nicht beide Scheibweisen erkannt werden vom Programm, dann nützt uns das nix...

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
            2. Hi,

              Referer wird im HTTP-Kontext immer falsch (d.h. mit nur einem r in der Mitte) geschrieben. Das ist ein Fipptehler (nehme ich an)
              Beide Schreibweisen sind korrekt.
              Man kann ja auch color oder colour schreiben, oder Router wie "Ruhter" oder "Rauter" aussprechen ... ;-)

              Bei color und colour handelt es sich um einen der vielen Unterschiede zwischen amerikanischem und britischem Englisch.

              referrer wird jedoch (außer bei HTTP) immer mit 4 r geschrieben.

              Einfach mal nach "referer dictionary" googlen ("referer" alleine gibt haufenweise Ergebnisse im http-Zusammenhang)

              http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=referer&action=Search
              http://dict.leo.org/?search=referer
              usw.

              cu,
              Andreas

              --
              MudGuard? Siehe http://www.Mud-Guard.de/
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              1. Hi,

                Bei color und colour handelt es sich um einen der vielen Unterschiede zwischen amerikanischem und britischem Englisch.

                Wer hätte das gedacht ... ;-)

                Einfach mal nach "referer dictionary" googlen ("referer" alleine gibt haufenweise Ergebnisse im http-Zusammenhang)

                Und ich habe eines, da stehen beide Varianten drin. Und nun? ;-)

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. Hi,

        Referer (da sind insgesamt nur 2 'r's drin!)

        Welche Variante ist denn dann im HTTP-Umfeld richtig?

        Refere
        Refeer
        eferer

        Oder doch die mit
        1   2 3 r ;-)
        referer

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Moin,

          Referer (da sind insgesamt nur 2 'r's drin!)

          Welche Variante ist denn dann im HTTP-Umfeld richtig?

          Na die mit 2 'r's und einem 'R' natürlich. Menno, du kannst fragen stellen.

          --
          Henryk Plötz
          Grüße aus Berlin
          ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
          ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
  2. Hallo!

    ich habe eine Seite, auf der Session-IDs in der URL mit übertragen werden.
    Andererseits habe ich auch Links auf andere Seiten, auf die ich keinen Einfluss habe.
    Ich möchte nun den Referrer "löschen", indem ich eine Zwischenseite aufrufe.
    Leider funktioniert ein Redirect mittels header("Location:$url") nicht wirklich, als Referrer wird weiterhin die alte URL angezeigt.

    Ich glaube das funktioniert nur mit client-seitigen Techniken, also Du öffnest eine Zwischenseite (an die am besten keine Session-ID angehängt sein sollte), und verwendest dort meta-refresh um auf die gewünschte Seite zu gelangen. So macht das z.B. web.de. Ob das allerdings bei allen Clients funktioniert weiß ich leider nicht.

    Bei SSL wird bei externen Links eh kein Referer gesendet - sollte zumindest so sein.

    100% sicher gehen kannst Du nur wenn Du den HTTP-Verkehr der CLients über einen eigenen Proxy lenken kannst, da Du hier die volle Kontrolle über die Header erhälst.

    Grüße
    Andreas

    --
    SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/