Referrer
# Referrer

Referrer (englisch to refer „verweisen“) bezeichnet im World Wide Web die Webseite, über die der Benutzer zur aktuellen Webseite bzw. Datei gekommen ist. Bei einer HTTP-Anfrage (z. B. eine Webseite oder ein Bild) sendet der Webbrowser den URL der ursprünglichen Webseite an den Webserver.

Der Referrer ist ein optionaler Teil der an den Webserver geschickten HTTP-Anfrage. Obschon optional, ist die Übermittlung bei allen gängigen Browsern voreingestellt. Nur wenn die aktuelle Seite per HTTPS abgerufen und die abzurufende Seite per HTTP zu übermitteln ist, soll die Übermittlung des Referrers unterbleiben. Wird die abzurufende Seite hingegen ebenfalls per HTTPS übertragen, findet – unabhängig vom Host – eine Übermittlung des Referrers statt. Die Übermittlung des Referrers „Hinter dem Rücken“ des Benutzers und des Betreibers ist ein Grund für das Durchsickern personenbezogener Daten aus nicht-öffentlichen Web-basierten Systemen.

Das RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) erklärt den technischen Hintergrund.

## Beispiel einer HTTP-Anfrage mit Referrer-Übergabe

Angenommen, die Webseite http://example.org/referring_page enthält einen Link auf diesen Wikipedia-Artikel: http://de.wikipedia.org/wiki/Referrer. Wenn der Benutzer diesen Link in seinem Webbrowser auswählt (anklickt), dann wird vom Browser eine Verbindung zu dem Webserver aufgebaut, der unter dem Namen de.wikipedia.org erreichbar ist, und die gewünschte Seite angefordert. In diesem Beispiel sendet der Webbrowser folgende Anforderung in der Syntax des Hypertext Transfer Protocols (HTTP):

(Zur Schreibweise siehe weiter unten)

Welche Angaben in der Anforderung gesendet werden, hängt vom verwendeten Webbrowser und dessen Konfiguration ab. So kann die Übermittlung des Referrers in jedem gängigen Webbrowser – mit Bordmitteln oder mit Hilfsprogrammen – abgeschaltet werden.

## Was mit dem Referrer geschieht

In der Regel speichert jeder Webserver in einer Protokolldatei eine Zeile je Abruf, in der neben IP-Adressen, Statusangaben und der User-Agent-Angabe, also dem verwendeten Webbrowser, auch der Referrer gespeichert wird. Der Webserver bzw. sein Betreiber kann die erhaltenen Angaben auf jede erdenkliche Weise verarbeiten. Dies dient vor allem der statistischen Auswertung; der Betreiber der Website erfährt, welche fremden Webseiten auf seine Seiten verweisen. Der Webserver kann aber auch eine vom Referrer abhängige Antwort liefern. Manche Bilder lassen sich nur abrufen, wenn der Referrer auf der gleichen Website ist; der Betreiber will damit verhindern, dass fremde Seiten die eigenen Bilder einbinden. Dieses Verfahren ist jedoch unter Umständen problematisch, da die Angabe des Referrers durch den User-Agenten erfolgt, laut Protokollspezifikation grundsätzlich freiwillig ist und beispielsweise bei Einsatz eines Proxyservers unterdrückt sein kann.

Referrer-Spam ist eine besondere Form des aggressiven Marketings und wird vor allem von pornografischen Internetangeboten genutzt. Hierbei hinterlässt ein Spambot einen Referrer mit dem URL des Angebots auf möglichst vielen Websites. Wenn eine dieser betroffenen Websites ihre Referrer veröffentlicht, was besonders bei Blogs beliebt ist, so befinden sich darunter die Spamlinks zu den Pornografieseiten.

## Dereferrer

Je nach Web-Browser ist eine Übermittlung des Referrers abschaltbar. Ein Dereferrer ist ein Dienst, der die Verlinkung einer Website erlaubt, ohne dass diese Website sinnvolle Referrerinformationen bekommt, auch wenn die Übermittlung im Browser aktiv ist.

Eine Verlinkung der Seite http://de.wikipedia.org/ über den fiktiven Dereferrerdienst http://www.example.org/ könnte zum Beispiel so aussehen:

Hier ruft der Webbrowser zunächst die example.org-Seite auf und wird dann auf de.wikipedia.org weitergeleitet. Für den Wikipediaserver sieht es so aus, als ob die Verlinkung von example.org ausgehe. Dies wird z. B. dazu angewandt, um geheime Daten in der ursprünglichen URL zu verbergen, wie z. B. eine Session-ID im Querystring oder die bloße Existenz der verweisenden Website. Als Beispiel seien hier Webmail-Anbieter genannt: Bei der Darstellung von E-Mails im Webinterface des jeweiligen Anbieters werden gegebenenfalls enthaltene Hyperlinks durch eine Umleitung über einen eigenen Dereferrer-Dienst ersetzt. Dadurch wird verhindert, dass eine böswillige Website über die im Referrer übermittelte Session-ID die Webmailing-Sitzung übernimmt (Session Hijacking), wenn ein Link auf die böswillige Website in der dargestellten E-Mail angeklickt wird. Vorteil gegenüber der browserseitigen Konfiguration: Der Benutzer muss weder das Wissen haben, wie die Referrerübermittlung auf Browserseite zu deaktivieren ist, noch kann er die Deaktivierung vergessen.

Bei der Benutzung von Dereferrern muss beachtet werden, dass Anker nur dann funktionieren, wenn die # durch %23 ersetzt wurde, da der Webbrowser sonst versucht, den Anker bereits auf der Dereferrer-Seite zu finden. Auch sollte bei der Wahl eines Dereferrer-Dienstes beachtet werden, dass es dem Anbieter möglich ist, Informationen über Ausgangs- und Zielseite sowie die Zeit und die IP des Benutzers zu sammeln.

Letzteres kann vermieden werden, indem man Zusatzmodule für Webbrowser verwendet, sogenannte Add-ons, die generell verhindern, dass ein Referrer übertragen wird, und dies nur auf Nutzerwunsch zulassen. Dies ist unter anderem aus Datenschutzerwägungen interessant, da andernfalls die Möglichkeit besteht, die Referrer mit den Nutzer-IP-Adressen in Verbindung zu bringen.

## Referrer-Spoofing

Unter Referrer-Spoofing, einer Form des URL-Spoofings, versteht man das Vortäuschen von Referrern beim Übermitteln des HTTP-Request. Die Zielsetzung eines derartigen Vorgehens ist es beispielsweise, unautorisierten Zugriff auf eine Webseite zu erlangen, sowie die Verschleierung der Information, welchem Weblink man gefolgt ist. Dies kann durch entsprechende Erweiterungen für den Browser oder durch Proxys (z. B. Proxomitron) erreicht werden (siehe auch Cross-Site-Request-Forgery).

## Schreibweise

Die korrekte englische Schreibweise lautet Referrer. Der ursprüngliche RFC (RFC 2068) enthielt jedoch versehentlich die falsche Schreibweise Referer und erzwingt damit diesen Wortlaut innerhalb von HTTP. In anderen Spezifikationen wie im DOM wird die korrekte Schreibweise verwendet (hier: document.referrer).

