Kampf dem Spam: Spamresistente Webstatistiken
Ein paar Worte vorweg
Diese Anleitung setzt voraus, daß Sie bereits wissen, wie man die Daten, die
bei einem Zugriff auf einen Webserver anfallen, festhält und so für andere
Nutzer aufbereitet, daß brauchbare Statistiken entstehen. Das erfordert, daß
Sie in der Lage sind, Apache so zu konfigurieren, daß er seine Logdaten an ein
Skript weitergibt, welches diese Daten in ihre einzelnen Felder trennt und in
eine MySQL-Datenbank einträgt. Ferner ist es erforderlich, diese Datenbank an
anderer Stelle wieder auszulesen und die darin enthaltenen Daten so
aufzubereiten, daß Sie sie anschließend in einem Webbrowser anzeigen lassen
können.
Diese Anleitung beschreibt, wie man das Skript, das die Statistiken an einen
Webbrowser überträgt, dahingehend modifiziert, daß Suchmaschinen die
angezeigten Verweise nicht mehr auswerten können und die Zielseiten somit nicht
mehr in deren Indizes aufgenommen werden.
Referrerstatistiken und Spam
Jeder kennt dieses Phänomen sicherlich zu Genüge: Kaum wird Nutzern die
Möglichkeit geboten, eine Nachricht irgendwo zu hinterlassen (im weiteren Sinne
sind Webstatistiken ebenfalls Nachrichten, da sie Auskunft darüber geben, woher
ein Besucher kam, von welcher IP-Adresse aus er die Seite besucht, welchen
Browser er verwendet, usw.), so treten unweigerlich auch Spammer auf den Plan
und verseuchen die betroffene Plattform mit unerwünschten Einträgen. Dies
funktioniert auch im Zusammenhang mit Webstatistiken, wobei insbesondere der
sog. Referrerspam
ein Problem darstellt.
Hierbei wird der im HTTP verwendete
Referer-Header seitens eines Besuchers dahingehend
manipuliert, daß statt des URLs der Seite, von der aus er auf die betroffene
Seite gelangt ist, der einer so beworbenen Seite übermittelt wird, die in der
Folge in der Statistik auftaucht. Der Spammer bezweckt damit zweierlei: Zuerst
einmal will er überhaupt eine Möglichkeit schaffen, daß Besucher auf die so
bespamte Seite gelangen und sie so überhaupt erst bekannt wird, und zweitens
ist es mit der Hoffnung verbunden, daß die bespamte Seite auch in den Index von
Suchmaschinen aufgenommen wird, was den Bekanntheitsgrad der Seite weiter
steigern soll. Zudem wird zumindest teilweise darauf abgezielt, daß der
PageRank der betroffenen Seite auf die bespamte Seite übertragen wird, so daß
sie von Suchmaschinen als relevant angesehen wird und dadurch in den
Suchergebnissen nach vorne rückt – und dabei möglicherweise deutlich
relevantere Seiten verdrängt. Dabei interessiert den Spammer nur, wie er die
von ihm beworbene Seite möglichst schnell „an den Mann“ bringen kann. Andere
Webseiten interessieren ihn i. d. R. nur insofern, wie er sie für seine eigenen
Zwecke mißbrauchen kann.
Leider wird die Arbeit der Spammer auch durch die Tatsache erleichtert, daß
die für die Erstellung der Statistiken verwendeten Skripte möglichst einfach
gehalten sind und dadurch keinerlei Abwehrmaßnahmen enthalten, die z. B. eine
Aufnahme von Seiten, auf die in den Statistiken verwiesen wird, in den Index
von Suchmaschinen unterbinden.
Das Verweisproblem
Der Dreh- und Angelpunkt dieses Problems ist die Tatsache, daß ein Verweis per
definitionem irgendwohin führt. Im Regelfalle geschieht dies über das Attribut
href, das das Ziel eines Verweises angibt.
Genau das ist es, was Spammern zuarbeitet: Adressen, die über dieses
Standardattribut gesetzt werden, lassen sich ohne weiteren Aufwand auswerten,
und Überprüfungen des Verweisziels finden i. d. R. ebenfalls nicht statt.
Dadurch können auch Suchmaschinen die Zielseiten finden und in ihren Index
aufnehmen, was wiederum dazu führt, daß so bespamte Seiten noch schneller
bekannt werden. Damit gelangt der Spammer beinahe sofort an sein Ziel.
Das Suchmaschinenproblem
Läßt man Suchmaschinen Referrerstatistiken auswerten, so stellt sich für diese ebenfalls ein Problem: Neben diversen durchaus sinnvollen Seiten befindet sich allzu oft auch Müll in der Verweisliste, was eine Suchmaschine auf den ersten Blick jedoch nicht unterscheiden kann. Hier sind seitens der Suchmaschine entsprechend leistungsfähige Algorithmen sowie manuelle Intervention erforderlich, um derart bespamte Seiten zu erkennen und wieder aus dem Index zu entfernen. Dies wiederum sind Arbeitsgänge, die nicht sein müßten, und die darauf verwendete Arbeits- und Rechenzeit ließe sich wesentlich sinnvoller für andere Dinge verwenden, beispielsweise zum regelmäßigen Ausmisten des Suchmaschinenindex oder für die Aufbereitung wirklich sinnvoller Seiten. Somit schaden Spammer letztlich auch den Betreibern von Suchmaschinen.
nach obenKonsequenzen für die verweisende Seite
Doch damit ist es noch längst nicht getan: Besonders schlimm wird es, wenn eine
Suchmaschine eine an sich harmlose Seite plötzlich als Spamschleuder einstuft,
weil ihre Referrerstatistik beispielsweise mit Verweisen auf bespamte Seiten
überbordet. In diesem Fall hat dies unweigerlich Konsequenzen für die so
verweisende Domain, die sich in den Ergebnissen der Suchmaschine unvermittelt
herabgestuft oder im Extremfall auch komplett aus diesen entfernt wiederfindet.
Damit wiederum schaden Spammern unweigerlich den Betreibern solcher Webseiten,
die sich im Extremfall von Besucherströmen, die sonst über Suchmaschinen auf
ihre Webseite gelangt wären, abgeschnitten sehen. Sollten Firmen von diesen
Machenschaften betroffen sein, so besteht grundsätzlich immer die Gefahr, daß
sich dies in Umsatzeinbußen bemerkbar macht.
Zudem wird es für die Betreiber betroffener Seiten auch noch anderweitig
problematisch: Da Spam allgemein unerwünscht ist, kann es sehr schnell
passieren, daß Besucher eine Seite, die sie als Spamschleuder wahrnehmen,
wieder verlassen und sich anderweitig umschauen.
Wirkungsloses nofollow
Um Spammern das Spammen zu verleiden, wurde das
rel-Attribut zwar dahingehend verändert, daß man für
Verweise angeben kann, ob der PageRank der verweisenden an die Zielseite
weitergereicht werden darf, doch hat sich diese Methode als ineffektiv
erwiesen. Zwar wird eine Seite, auf die verwiesen wird, dadurch nicht
höherrangig eingestuft, doch das Primärziel eines Spammers wird so immer noch
erfüllt: Die Erreichbarkeit einer Seite sicherzustellen und dafür zu sorgen,
daß sie im Index von Suchmaschinen landet. Eine Abnahme des Spamaufkommens war
in dem Zuge nicht festzustellen.
Das einzig Positive an dem Wert nofollow ist, daß
die verweisende Seite von Suchmaschinen nicht abgestraft wird, weil sie auf
bespamte Seiten verweist, und ihren ursprünglichen PageRank behält – doch
hindert es Suchmaschinen nicht daran, eine Seite als Spamschleuder einzustufen,
wenn zuviele Verweise auf bespamte Seiten auftauchen.
Wie JavaScript ins Spiel kommt
Um zumindest eine Zielsetzung von Referrerspam gründlich sauer zu machen, ist
eine grundlegend andere Vorgehensweise erforderlich, als den Verweis auf die
Zielseite über das href-Attribut zu setzen. Dieses
Attribut wird zunächst einmal auf den Wert
javascript:void(0); gesetzt, was Suchmaschinen sehr
effektiv daran hindert, den betreffenden Verweis auszuwerten: Er enthält in den
Augen der Suchmaschine überhaupt kein gültiges Verweisziel!
Zwar könne man argumentieren, daß man das
href-Attribut einfach entfallen lassen könnte und
stattdessen einen leeren Verweis setzt, doch dann ergibt sich das Problem, daß
solch ein toter Verweis optisch nicht mehr als Verweis dargestellt wird,
sondern als normaler Text. Dieser läßt sich zwar immer noch anklicken und
führt wie geplant keine weitere Aktion aus, doch kann ein Besucher den Verweis
nicht mehr als solchen erkennen. Damit fällt diese Methode aus.
Jetzt könnte man den Inhalt dieses Attributes auch auf #
setzen, doch dieser leere Anker sorgt dafür, daß dieselbe Seite unter zwei
verschiedenen Adressen im Suchmaschinenindex zu stehen kommt, etwas, das es
tunlichst zu vermeiden gilt! Demhingegen sorgt
javascript:void(0); dafür, daß die Suchmaschine das
Verweisziel als ungültig auffaßt und sich gar nicht erst anschickt, nach einem
potentiellen Ziel zu suchen, und auch das Problem mit dem leeren Anker gibt
sich so nicht mehr.
Dennoch möchte man seine Besucher im Bedarfsfalle auf die Zielseite weiterleiten, wenn diese auf die angezeigten Verweise klicken. Dazu ist es dann erforderlich, daß man das erwartete Verhalten der Verweise mittels JavaScript emuliert, so daß der Browser den Besucher ganz normal auf die Zielseite weiterleitet, wenn dieser draufklickt. Dies erreichen Sie mit dem onclick-Attribut, das durch das Skript, das die Verweisstatistiken erstellt, in den Verweis eingefügt wird. Ein so modifizierter Verweis erscheint dann beispielsweise wie folgt im HTML-Text:
Durch diesen eingefügten Event-Handler wird der Browser angewiesen, das darin notierte JavaScript auszuführen – das als einziges dafür sorgt, daß das Dokument, das sich an der angegebenen Adresse befindet, nachgeladen wird, als handele es sich um einen ganz normalen Verweis. Aus der Sicht einer Suchmaschine hat ein solcher Verweis es jedoch in sich: Da letztlich eine ungültige Adresse als Verweisziel angegeben worden ist, gibt es hier nichts, was für die Suchmaschine von Interesse wäre, so daß sie die Zielseite nicht sieht.
Wenn gewünscht, können Sie Ihr Skript natürlich auch so erweitern, daß ein
Verweis ganz normal gesetzt wird, d. h. daß die Zieladresse ganz regulär im
href-Attribut eingetragen wird, wenn Sie den
betreffenden Verweis in Ihrer Datenbank entsprechend markieren. Dies sollten
Sie jedoch erst nach einer hinreichenden Überprüfung der Zielseite tun, da
Sie Suchmaschinen sonst wieder ermöglichen, die Zielseite zu erreichen, und das
wollen wir im Fall von Referrerspam ja vermeiden. Wenn sich die Zielseite
jedoch als sauber erweist, so können Sie mit dieser Erweiterung dafür sorgen,
daß Suchmaschinen diese finden können und auch Ihr PageRank an die Zielseiten
weitergereicht wird – was dann indirekt wieder dem Betreiber der Zielseite
zugute kommt.
Sollten dennoch unerwünschte Verweise in den Statistiken auftauchen, so können
Sie sie zudem ganz einfach aus Ihrer Datenbank entfernen, ohne daß zuvor durch
ihre Anwesenheit größerer Schaden entstanden wäre.
Wenn Suchmaschinen bespamte Seiten nicht mehr sehen...
In diesem Fall haben Sie gewonnen und irgendwelchen Spammern ein Hauptziel, also die Aufnahme der von ihnen bespamten Seiten in den Index von Suchmaschinen, gründlich sauer gemacht. Zwar kämen irgendwelche Besucher so immer noch auf die Seiten, auf die verwiesen wird, doch daß Suchmaschinen diese Seiten nicht sehen, sorgt letztlich dafür, daß sie zusehends schwerer zu finden sind. Dies sorgt für weniger Besucher auf den bespamten Seiten und verweigert den Spammern das Erfolgserlebnis, da Besucher in größerer Menge auf so bespamten Seiten ausbleiben. Außerdem verschont es Suchmaschinen so mit Seiten, die niemand braucht, wodurch unnötige Arbeitsgänge seitens der Suchmaschinen entfallen und der Platz, der so nicht durch unsinnige Seiten blockiert wird, anderweitig zur Verfügung steht.
nach obenEinbau einer suchmaschinensicheren Meldefunktion
Um Ihnen die Arbeit beim Finden von unerwünschten Referrern in ihren
Statistiken zu erleichtern, haben Sie zudem die Möglichkeit, eine Meldefunktion
einzubauen, die es Ihren Besuchern erlaubt, verdächtige oder unerwünschte
Verweise zu melden. Diese sollten dann in Ihrer Datenbank passend markiert
werden, und wünschenswerterweise werden Sie für den Fall per E-Mail informiert,
daß Verweise gemeldet wurden. Gleichzeitig gilt es jedoch zu verhindern, daß
Suchmaschinen diesen Meldeverweisen folgen und so ungewollt irgendwelche
Verweise melden.
Um dies zu erreichen, verwenden Sie einfach das gleiche Verfahren, mit dem Sie
Suchmaschinen daran hindern, ungeprüften Verweisen einfach so folgen zu können.
Außerdem ist es hilfreich, wenn Sie eine Möglichkeit einbauen, die es Ihnen
erlaubt, die Meldefunktion für einzelne Verweise abzuschalten, wenn Sie
feststellen, daß ein Verweis grundlos gemeldet wird, beispielsweise durch
irgendwelche Scherzkekse oder Leute, die, aus welchen Gründen auch immer, dafür
sorgen wollen, daß auf bestimmte Seiten nicht mehr verwiesen wird.