Hide-Referrer auf klicken Sie auf
Ich ausblenden möchten, die referrer, wenn ich auf einen link auf meiner website. Um besser zu verstehen was ich machen möchte: Wenn jemand klickt auf einen link auf meine website, ich will nicht die andere website Besitzer wissen, wo die Besucher kamen.
Ist mir egal, wenn es fertig ist mit PHP, HTML oder Javascript.
Ich habe versucht, mit HTML-refresh, javascript-Fenster.Lage, javascript-popup, PHP header redirect, aber nichts funktionierte.
Was genau haben Sie versucht, wenn Sie sagen
Ihre
Er will überlisten Sie den browser so, dass alle HTTP-Anfragen initiiert durch klicken auf ausgehende links auf seiner website hätte Ihre Referer - header entfernt.
Ja, ich bin mir dessen bewusst - das sollte es tun. Aber vielleicht ist es auch nur konsequent in allen Browsern, wenn Ihr dereferer ist ein
Dumitru: Nur ein heads-up, es scheint eine
PHP header redirect
? Können Sie zeigen Sie uns den code? header('Location:' /* ... */);
normalerweise funktioniert der trick, so bin ich verwirrt, warum dein Fall nicht.Ihre
b.php
sollte die header()
nennen. Die 3XX
status-code (implizit gesetzt, die von PHP beim Aufruf header('Location: ' /* ... */);
) Reaktion sollte machen Sie Ihren browser umleiten und nicht senden der referer-Einstellung. Welchen browser verwenden Sie, dass der referer wird immer noch gesendet?Er will überlisten Sie den browser so, dass alle HTTP-Anfragen initiiert durch klicken auf ausgehende links auf seiner website hätte Ihre Referer - header entfernt.
Ja, ich bin mir dessen bewusst - das sollte es tun. Aber vielleicht ist es auch nur konsequent in allen Browsern, wenn Ihr dereferer ist ein
HTTPS
dereferer. / Edit: @Alex Dumitru: Interessant. Ich werde schauen, dass. Danke für die info.Dumitru: Nur ein heads-up, es scheint eine
HTTPS
/HTTP
Unterschied. Mit Chrome und jimp Antwort auf eine HTTPS
server sendet keinen referer. Wenn Sie sagen, dass Ihre Lösungen, wie Sie es tun, für HTTP
, das ist Ihr Unterschied. Ist HTTPS eine option für dich?InformationsquelleAutor Alex | 2011-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden wir ein einfaches Skript, das wir in-house entwickelt für eine interne task-system. Wir wollen keine referrer-Informationen übergeben! Wenn ich mir andere websites, die wir verwalten, sehe ich keine referrer-Informationen übergeben, mit der Aufforderung, bei der Verwendung der Skript, aber ohne das Skript, das ich tun.
Es funktioniert in Chrome, aber wir sind mit HTTPS. Ich bemerkte Ihre Kommentare mit @pinkgothic oben, und ich kann bestätigen, was er sagte. Dieser trick klappt scheinbar für HTTPS, aber nicht für HTTP. Ich habe versucht, Chrome 12 und Firefox 4. Es spielt keine Rolle, ob die "anonym."Skript verwendet HTTPS, es ist nur von Bedeutung, wenn die Seite mit dem ersten Klick wird HTTPS verwendet. Ich habe nicht verfolgt, die Skillung, aber ich vermute, HTTPS erfordert, die referrer-Informationen gelöscht werden, über eine Position: redirect. Vielleicht einige Anpassungen mit zusätzlichen Umleitungen funktionieren könnte, d.h., mehr Umleitung Hopfen, ich bin mir nicht sicher.
InformationsquelleAutor jimp
Ab 2015 dies ist, wie Sie verhindern, dass das senden der Referer-header:
<meta name="referrer" content="no-referrer" />
Nur fügen Sie diese an den head-Abschnitt der web-Seite. Funktioniert sowohl für links-und für Ajax-Anfragen.
InformationsquelleAutor MarcG
Hier ist ein Narr Beweis Weg, dies zu tun. Ich benutze dieses Skript in eine app, die manchmal links zu 3rd-party-websites von Seiten, die URLs müssen privat gehalten werden.
Dieses script nutzt PHP und JavaScript sicher zu entfernen Sie den ursprünglichen referrer aus den Headern.
Halten Sie im Verstand diese Antwort geschrieben wurde, im Jahr 2012... und Was ist es funktioniert nicht? Ist es ein PHP Fehler auf dem server, oder ein JavaScript-Fehler im browser?
Nichts dergleichen. Der browser stellt einfach den referrer-header, wenn das ändern der Lage über
location.href
jetzt. Eine Sache, die jetzt getan werden kann, wenn das hinzufügen von links, das sollte anonym sein ist Einstellungauf die links obwohl.
InformationsquelleAutor honyovk
Work-around, aber keine Lösung:
erzeugen alle solche verbindungen, die durch tinyurl.com oder einen ähnlichen Dienst.
Nehmen
<url>
Sie umleiten möchten, und raw-url-codieren. Generiert einen zufälligen string, sagen wir 10-15 chars (um sicherzustellen, dass es Verfügbarkeit), damit es nennen<alias>
.Dann rufen Sie
http://tinyurl.com/create.php?alias=<alias>&url=<url>
E. g. http://tinyurl.com/create.php?alias=ahdiwabdoubiadasd&url=http%3A%2F%2Fwww.whatismyreferer.com%2F
Nun können Sie überprüfen, dass http://tinyurl.com/ahdiwabdoubiadasd führt zu http://www.whatismyreferer.com mit referrer verkleidet
InformationsquelleAutor mkilmanas
Neben jimps' Antwort, die ich erstellt eine Datei .php-Lösung, die die Arbeit mit HTTPS und HTTP. Es verwendet zwei Schritte, (und das wird auch so nennen anonym.php zweimal). Zuerst ein javascript-redirect, der zweite ein php header location Weiterleitung. Ich persönlich brauchte dies, um zu prüfen geposteten urls aus einem admin-Bereich. Genießen Sie!
In adition zu
InformationsquelleAutor Martijn Smit
In HTML 5 links unterstützen sollten
für diesen Zweck.
InformationsquelleAutor H.B.
Könnten Sie alle Ihre links, passieren eine proxy-Umleitung oder link-shortening-Dienste (z.B. bit.ly oder goo.gl), aber möglicherweise heben sich einige Augenbrauen bei den Nutzern.
Könnten Sie auch (wieder, nicht zu empfehlen) ersetzen Sie Ihre hyperlinks mit, die trigger eine server-Seite postback und programmatisch 'Konstrukt' der Header vor dem Absenden der Anfrage aus.
Alles ein bisschen übertrieben ist aber, meiner Meinung nach.
iirc bit.ly & die meisten Dienste geben, die referrer-Informationen, so etwas wie anonym.nicht
anonym.und andere Anonymisierer wird sich ändern, referrer, aber nicht ausblenden. Zum Beispiel die referrer anonym.zu werden wie anonym./?google.com
Dumitru: Hmm, warum geht es Ihnen, wenn
anonym.to
ist in der referer, solange Ihre Website nicht? Nur um zu verstehen, Ihren Fall besser.Ich will kein referrer gesendet werden. Es muss leer sein, wenn Sie besucht, die Website direkt durch Eingabe in den browser.
InformationsquelleAutor Widor
Aktualisierten code:
Dieser code ist ein proof-of-concept nur. Navigation Weg von der übergeordneten Seite wird abgebrochen und die Ziel-url ist messaged zu einem iframe. Der iframe lädt ein dara url, die zählt, als eine "null" Ursprungs-Dokument. Wenn der frame, der die Nachricht empfängt, leitet es den Benutzer auf die Ziel-url mit einem "null" - referrer. Da der Rahmen hat eine null-Herkunft, es kann nicht sein, Nachrichten direkt. Als Ergebnis einer anderen web-Seite könnte möglicherweise die Nachricht abzufangen, die über Ihre eigenen anonymen iframe. In der Produktion verwenden, sollten Sie weiterhin verwenden auf Ihre links, falls Ihr Benutzer haben javascript deaktiviert, oder ein javascript-Fehler tritt auf Ihre Seite. Bei alten Browser mit JS deaktiviert ist, wird der referrer könnte noch ausgesetzt werden. Dieses Beispiel kann nur geladen werden, nachdem der Körper der web-Seite, so dass alle Klicks, bevor die Seite vollständig geladen wurde, können nicht bearbeitet werden durch das Skript.
Original post:
Hier ist mein Versuch einer fallback-Lösung, mit einem leeren iframe. Ich habe nicht bekommen, es funktioniert, aber ich bin mir zu teilen, falls jemand anderes will, um mit ihm hantieren. Technisch ist der Rahmen, cross-origin, also kann man nicht einfach auf einen link klicken in den Rahmen. Mein Gedanke war die Verwendung von postMessage stellen Sie den Rahmen auf sich selbst.
https://jsfiddle.net/skibulk/0oebphet/39/
InformationsquelleAutor skibulk