Dieser Artikel beschreibt einen Vorschlag für einen Metadatenparameter für den Referrer im HTTP-Protokoll. Mithilfe dieses Metadatenparameters kann ein HTML-Dokument den Referrer in einer HTTP-Anforderung steuern, z. B. ob ein Referrer, nur ein Hostname oder ein vollständiger Referrer gesendet werden soll. Obwohl es einige Möglichkeiten zur Steuerung des Referrers gibt, wie etwa Flash und einige JS-Tricks, beschreibt dieser Artikel ein anderes Bild. Anwendungsszenarien In einigen Fällen möchte die Website aus bestimmten Gründen die von der Seite an den Server gesendeten Referrer-Informationen steuern und kann diesen Referrer-Metadatenparameter verwenden. Datenschutz Auf Social-Networking-Sites gibt es im Allgemeinen persönliche Benutzerseiten, auf denen Benutzer externe Links hinzufügen können. Social-Networking-Sites möchten die URLs der Benutzerseiten möglicherweise nicht offenlegen, wenn Benutzer auf diese Links klicken, da diese URLs vertrauliche Informationen enthalten können. Natürlich möchten manche Social-Networking-Sites im Referrer möglicherweise nur einen Hostnamen und nicht die vollständigen URL-Informationen angeben. Sicherheit Einige Websites, die https verwenden, verwenden möglicherweise einen Parameter (sid usw.) in der URL als Identitätsnachweis des Benutzers und müssen Ressourcen von anderen https-Websites einführen. In diesem Fall möchte die Website die Identitätsnachweisinformationen des Benutzers auf keinen Fall preisgeben. Objektfähigkeitsdisziplin Einige Websites befolgen die Object-Capability Discipline, und der Referrer widerspricht dieser Strategie. Daher ist es für die Object-Capability Discipline von Vorteil, wenn die Website den Referrer kontrollieren kann. Technische Details Der Metedata-Parameter des Referrers kann auf die folgenden Wertetypen gesetzt werden:
Wenn ein Meta-Tag in ein Dokument eingefügt wird und der Wert des Name-Attributs „Referer“ lautet, verarbeitet der Browser-Client das Tag wie folgt:
Wenn der Browser nach den obigen Schritten anschließend eine HTTP-Anfrage initiiert, antwortet er je nach Wert des Inhalts wie folgt (der Wert der Referrer-Richtlinie unten ist der Wert des Inhalts im Meta-Tag): 1. Wenn der Wert der Referrer-Richtlinie „nie“ lautet: Löschen Sie den Referrer im HTTP-Kopf. Beispiel Wenn die Seite das folgende Meta-Tag enthält, enthalten alle von der aktuellen Seite initiierten Anfragen nicht den Referrer:
Wenn die Seite das folgende Meta-Tag enthält, enthält die von der aktuellen Seite initiierte HTTP-Anfrage nur den Ursprungsteil (Hinweis: Dem Kontext im Originaltext zufolge verstehe ich, dass der Ursprung hier die partielle URL ist, die das Schema und den Hostnamen enthält und keine anderen URL-Teile wie den Pfad einschließt) und nicht die vollständige URL:
Hinweis: Bei der Verwendung der in diesem Artikel beschriebenen Meta-Tags wird die ursprüngliche Referrer-Strategie des Browsers durchbrochen. So wird beispielsweise beim Sprung von einer http-Seite zu einer https-Seite, sofern der entsprechende Wert gesetzt ist, auch der Referrer mitgeführt. Andere Probleme In welcher Beziehung steht dies zu rel=noreferer? Es ist möglich, dass rel=noreferer den durch das Meta-Tag in diesem Artikel festgelegten Wert überschreibt. Das ist eine funktionale Abdeckung. Anmerkung des Übersetzers Dieser Artikel wurde ursprünglich im Jahr 2012 verfasst. Die ursprüngliche Seite wurde inzwischen verworfen und die Seite mit der W3C-Referrer-Richtlinie wurde bereitgestellt. Der Übersetzer hat jedoch festgestellt, dass derzeit viele Websites die Referrer-Verifizierungsmethode verwenden, um sich gegen CSRF zu verteidigen, und manchmal zulassen, dass der Referrer leer bleibt. Darüber hinaus verwenden auch einige wichtige Unternehmen von BAT-Herstellern die Referrer-Verifizierungsmethode und lassen den Referrer leer bleiben, um sich gegen JSON-Hijacking zu verteidigen. Sie denken vielleicht, dass das, was in diesem Artikel beschrieben wird, nur ein Vorschlag ist, aber FireFox hat in einem Artikel vom 21. erklärt, dass es ab Firefox 36 Beta die Referrer-Richtlinie unterstützen wird, was zweifellos das Geschäft einiger Hersteller bedrohen wird. [Referenzquelle wiki.whatwg.org, bitte geben Sie an, dass sie von FreeBuf Hackers and Geeks (FreeBuf.COM) stammt] Problem beim https- und http-Referrersprung Der Referer im HTTP-Protokollheader dient dem Server vor allem dazu, die Quellseite zu ermitteln, also von welcher Seite der Nutzer kam. Get-Methode: $_SERVER['HTTP_REFERER'] Bei der https->http-Umleitung wird die Weiterleitung der Empfehlung nicht empfohlen, bei https->https und http->https gibt es dieses Problem jedoch nicht. Beispielsweise erhalte ich die Adresse der QR-Code-Schnittstelle: Der richtige Effekt https://qrcode.artron.net/?text=https|http://m-exhibit.artron.net/&el=10&margin=1 Die Wirkung des Fehlers http://qrcode.artron.net/?text=https://m-exhibit.artron.net/jump/index Die Überprüfungsergebnisse zeigen, dass https mit einigen Parameterproblemen von http kompatibel ist, http jedoch nicht mit den Parameterproblemen von https. Hier ist der Unterschied zwischen http und https. Das Hypertext Transfer Protocol (HTTP) wird zum Übertragen von Informationen zwischen Webbrowsern und Website-Servern verwendet. Das HTTP-Protokoll sendet Inhalte im Klartext und bietet keinerlei Form der Datenverschlüsselung. Wenn ein Angreifer die Übertragungsnachricht zwischen dem Webbrowser und dem Website-Server abfängt, kann er die darin enthaltenen Informationen direkt lesen. Daher ist das HTTP-Protokoll nicht für die Übertragung einiger vertraulicher Informationen wie Kreditkartennummern, Passwörter usw. geeignet. Die Hauptunterschiede zwischen HTTPS und HTTP sind folgende: 1. Für das https-Protokoll muss ein Zertifikat bei einer Zertifizierungsstelle beantragt werden. Normalerweise gibt es nur wenige kostenlose Zertifikate, für die Sie bezahlen müssen. Hier die Antworten auf die Fragen: Gemäß der obigen Beschreibung sendet der Browser beim Umleiten von einer HTTPS-Site zu einer HTTP-Site standardmäßig keinen Referrer. Es gibt ungefähr zwei Möglichkeiten, den Browser dazu zu bringen, einen Referrer zu senden: 1. Fügen Sie den Kopf der Station A hinzu
2. Station B verwendet ebenfalls HTTPS Wenn Station A eine verbindliche Regel hat, keine Referrer zu senden, und Station B keine Kontrolle über Station A hat, können wir, wie oben erwähnt, natürlich nicht die Statistiktools von Drittanbietern kontrollieren, um die Schlüsselwörter der Baidu-Suchmaschine zu zählen. |
<<: So zeigen Sie die Ausführungszeit von SQL-Anweisungen in MySQL an
NULL- und NOT NULL-Modifikatoren, DEFAULT-Modifik...
XHTML ist die derzeit international verbreitete S...
Ich bin kürzlich auf das Audiovisual Linux Projec...
Schreiben Sie Konfigurationsdateien in server.xml...
PS: Ich habe kürzlich das Nginx-Kapitel von <&...
Inhaltsverzeichnis 1. Zwei setState, wie oft soll...
VirtualBox ist ein kostenloses Open Source-Virtua...
Methode 1: Absenden über den Absenden-Button <...
Dokumentation: https://github.com/hilongjw/vue-la...
Inhaltsverzeichnis Vorwort Fügen Sie Sudo-Schreib...
Glasfenster Was wir heute erreichen werden, ist d...
Apollo Open Source-Adresse: https://github.com/ct...
Adaptives Layout wird in praktischen Anwendungen i...
Inhaltsverzeichnis 1. Was ist Bubble Sort 2. Gebe...
Die Homepage von Tencent QQ wurde neu gestaltet un...