Das Proxy-Problem

Ein Problem, das seit einiger Zeit aktuell ist, aber anscheinend noch nicht genügend Öffentlichkeit gefunden hat, damit die großen Suchmaschinen aktiv werden, hat – wie bei der 302-Hijack-Problematik – mit der Übernahme von Inhalten zu tun. In einer Reihe von Ländern, wie beispielsweise China oder den Vereinigen Arabischen Emiraten, gibt es keinen freien Internetzugang: aller Traffic, der die Landesgrenzen passieren will, geht über staatliche Router und wird dabei zensiert. Das Internet wäre nicht das Internet, gäbe es keine technischen Möglichkeiten der Umgehung dieser Zwangszensur. Neben ausgefeilteren Möglichkeiten, wie sie der Anonymisierungdienst „Tor“ oder der Einsatz eines VPN-Gateways im Ausland bieten, hat sich auch eine technisch deutlich simplere Möglichkeit durchgesetzt. Kleine Scripte, meistens in PHP oder Perl geschrieben, können auf jedem Webspace-Account, der eine dieser Scriptsprachen unterstützt, installiert werden und bieten eine Art simplen, nicht transparenten Proxydienst. Der User gibt die Seite, die er besuchen möchte ein, der Server, auf dem das Script liegt holt diese und gibt sie aus. Um jetzt den Bogen zum Problem, das sich dadurch aus Suchmaschinensicht stellt, zu spannen, hier der typische Crawlvorgang, wenn der Google-Crawler eine Seite abruft:

imagenotfound
Der Googlebot greift direkt auf die Seite zu, erhält von der den Inhalt und fügt diesen dann seinem Index hinzu. Dadurch, dass diese Proxy-Scripte nun auf einem normalen Webspace-Account laufen, sind sie auch über den normalen Weg, den auch der Googlebot geht, erreichbar. Im folgenden Fall wäre die Homepage beispielsweise neben der Adresse www.example.com auch über www.proxy.com/proxy/www.example.com zu erreichen.

imagenotfound

Da der Proxy die Inhalte der Homepage in seiner Funktion Eins-zu-eins spiegelt und – das ist wichtig – unter seiner URL widergibt, tritt hier das bereits hinreichend bekannte Duplicate-Content-Problem auf: Google sieht den gleichen Inhalt mehr als einmal und muss sich nun entscheiden, welches das Original ist und folglich in den Index aufgenommen wird und welches die Doubletten sind. Prinzipiell hat Google seit der Einführung einer neuen Architektur, intern auf den Namen „Big-Daddy“ getauft, große Fortschritte in diesem Bereich gemacht, perfekt ist sie allerdings bei weitem noch nicht. So kommt es, dass Google des Öfteren die Proxy-Seite als Original erkennt, die eigentliche Homepage aus dem Index wirft und den Proxy stattdessen aufnimmt. Die Auswirkungen dieses Verhaltens erstecken sich übrigens nicht nur auf die eine Seite, die der Proxy hijacked: so soll man sich vorstellen, dass der eigenen Homepage die Hauptseite, meistens auch Hauptlinkhub, genommen wird.

Die erste Lösung, die üblicherweise zuerst probiert wird, besteht in der Sperrung des jeweiligen Proxys. Entweder wird der User-Agent oder aber die IP-Adresse des Proxys auf dem Server, auf dem die Homepage liegt gesperrt, so dass der Proxy die Seite nicht mehr ausliefern kann. Leider gibt es mittlerweile eine nahezu unüberschaubare Anzahl dieser Webproxys, täglich kommen neue hinzu und auch bei den User-Agent-Angaben zeigen die Betreiber sich häufig recht erfinderisch. Auch sind es nicht nur uneigennützige Betreiber, die den armen, zensurgeplagten Surfern in den angesprochenen Ländern helfen wollen sondern teilweise auch Geschäftsmacher, die absichtlich Seiten über diese Proxymethoden hijacken und zusätzlich noch ihre Werbung einblenden. Gerade bei diesen Fällen sind die Verschleierungstaktiken mittlerweile so ausgefeilt, dass ihnen schwer beizukommen ist.

Die zweite Methode geht einen etwas ungewöhnlicheren Weg, verspricht allerdings deutlich mehr Erfolg. Die zugrunde liegende Idee ist, dass die Webseiten an alle Besucher mit einem „Noindex“-Metatag ausgeliefert werden. Lediglich, wenn ein verifizierbarer Suchmaschinenbot die Seite anfordert, wird dieser Metatag entweder weggelassen oder ein „Index,Follow“-Tag gesendet. Dies hat zur Folge, dass der Googlebot auf dem direkten Weg die Erlaubnis erhält, die Seite zu indexieren, während die Proxy-Version – da sich der Proxy ja nicht als regulärer Suchmaschinenbot ausweisen kann – die Noindex-Anweisung enthält. Die Entscheidung, welche Seite in den Index aufgenommen wird, wird der Suchmaschine leicht fallen. Dankenswerterweise haben die vier großen Suchmaschinen (Google, Yahoo, Microsoft, Ask.com) im letzten Jahr einen einheitlichen Mechanismus zur Verifizierung ihrer Suchmaschinenbots etabliert: Durch Auflösen der IP-Adresse des Zugriffes auf den zugehörigen Hostnamen, der einem der Suchmaschinen entsprechen muss sowie erneutes Auflösen dieses Hostnamens auf die IP-Adresse kann man zweifelsfrei feststellen, ob der Zugriff von einem echten, oder einem der vielen gefakten Googlebots erfolgt ist. Eine Umsetzung dieser Lösung in PHP kann beispielsweise so aussehen:

<?php 

if(preg_match('/(Googlebot|Slurp|Jeeves|msnbot)/'$_SERVER['HTTP_USER_AGENT'])
&& 
preg_match('/(.googlebot.com|.yahoo.net|.inktomisearch.com|.ask.com|.live.com)$/'gethostbyaddr($_SERVER['REMOTE_ADDR']))
&& (
gethostbyname(gethostbyaddr($_SERVER['REMOTE_ADDR'])) == $_SERVER['REMOTE_ADDR'])) {
    echo

'<meta name="robots" content="index,follow">';} else {

echo

'<meta name="robots" content="noindex,nofollow">';}

 

?>

Natürlich darf auch nicht verschwiegen werden, dass auch diese Lösung Nachteile hat. Zum einen werden außer denen im Script hinterlegten, alle weiteren Suchmaschinen ausgesperrt. Gerade kleineren, die diese Verifizierung per DNS-rDNS-Auflösung (noch) nicht unterstützen oder die einfach nicht eingetragen sind, kann damit das Crawlerleben schwer gemacht werden. Auch müssen für jeden Seitenaufruf zwei DNS-Abfragen durchgeführt werden – je nach Geschwindigkeit des abgefragten Servers kann dieses die Antwortzeiten deutlich verlängern. Eine Lösung mit intelligentem Caching der Abfragen ist also besonders für größere Seiten unbedingt zu empfehlen. Ebenfalls nicht ausgeschlossen werden kann, dass Betreiber der Proxyserver die Meta-Tags einfach wieder umschreiben oder entfernen und die Maßnahme somit im Sande verläuft. Trotz allem ist dies derzeit wohl die bestmögliche Methode, um dem Hijacking durch Proxys zu begegnen.

Ähnliche Beiträge