Wie man Hijack Proxys besiegt

Seit mehr als einem Jahr ist das Probelm des Proxy Hijacking bekannt und noch immer funktioniert es.

Was ist ein Proxy Hijack?

Über einen Webproxy den ihr über die Browserzeile aufruft könnt ihr im Prinzip ganz normal durchs Web surfen. Nur, dass eure Daten über den Proxy laufen, so dass die Website die ihr besucht gar nicht euch, sondern nur den Proxy sieht (User Agent, IP, usw.). Gründe einen Proxy zu verwenden gibt es diverse, wie das Bedürfnis nach mehr Anonymität oder um eine Sperre zu umgehen.

Dabei ändern ein Proxy natürlich alle Links auf den Seiten die ihr betrachtet so ab, dass auch ein Klick auf einen Link die entsprechenden Seite wieder über den Proxy aufruft.

Nehmen wir nun an Proxy A hat die Domain proxya.tld und wir betrachten unsere Webseite (example.com) über ihn. Dann steht in den Adresszeile proxya.tld/proxy/example.com (1) und wenn jetzt jemand böse ist und auf die Seite (1) linkt, dann findet Google sie und indiziert sie auch (vorausgesetzt der Proxybetreiber hat dem keinen Riegel vorgeschoben).

Da nun aber (1) den gleichen Inhalt wie example.com anzeigt wurde doppelter Inhalt erzeugt. Und wenn es neben Proxy A auch noch die Proxys B, C, D, usw. gibt und jemand sie alle anlinkt oder einen mit sehr starken Links versorgt kann es passieren, dass unsere Website example.com von Google nicht mehr in den Suchergebnissen angezeigt wird.

Das ist kein ausgedachtes Horrorszenario sondern schon diversen Webmastern passiert. Teilweise durch böse Proxybetreiber die die Seiten mit Werbung vollklatschen, häufig aber auch durch Konkurrenten die Example.com absichtlich in diverse Proxys gebracht haben.

Kann ich mich schützen?

Es gibt eine ganze Reihe von Methoden um es gar nicht erst so weit kommen zu lassen. 6 gängige Methoden möchte ich hier vorstellen und kurz Vor- und Nachteile erläutern.
Version 1 (noindex, nofollow)
Eine Möglichkeit ist dieses Script von Sistrix welches ich jedoch nicht empfehlen kann, da es neben den Proxys auch alle nicht explizit von euch benannten Suchmaschinen aussperrt.

Die Idee ist recht simpel: Die Spider von Google & Co bekommen die normale Seite geliefert bei allen anderen Seitenaufrufen wird ein

name=”robots” content=”noindex,nofollow”

gesendet, was natürlich dazu führt, dass diese Meta-Information dann auch auf der Proxy-Seite angezeigt wird.
Mein Rat: Nur Benutzen wenn jemand es auf euch abgesehen habt und ihr massive Probleme mit Proxy Hijacking habt.

Version 2 (PHP)
Eine Lösung um gegen einzelne Proxys vorzugehen gibt es von Lyoid. Sinnvoller fände ich es dann jedoch die IP Adressen schon in der htaccess zu sperren und nicht erst auf PHP-Ebene abzufangen (spart Ressourcen).

Version 3 (htaccess)
Wie in 2. schon angesprochen: Einfach die IP Adressen via .htaccess blocken (nur auf Apache Webservern).
Etwa mit

Order deny,allow
Allow from all
deny from 192.168.0.1
deny from 192.167

Mit diesem Befehl würden die Adresse 192.168.0.1 und alle mit 192.167 beginnenden IPs gesperrt werden.

Version 4 (mod_rewrite)
Ähnlich wie in 3 kann man in der htaccess auch User-Agents oder Referer abfangen.

RewriteCond %{HTTP_USER_AGENT} ^trsohbet [NC,OR]
RewriteCond %{HTTP_REFERER} lovemyproxy -\.info [NC,OR]
RewriteRule .* – [F]

Wobei ihr mit entsprechenden RewriteRules natürlich sehr viel anstellen könnt. Zum Beispiel alle abgefangenen Proxys auf einen anderen Proxy jagen (und über diesen direkt einen weiteren aufrufen). Hier müsst ihr wissen was euch wichtiger ist. Wollt ihr nur den Traffic sparen und euch vor Content-Diebstahl schützen oder den Proxys extra viel Arbeit machen?

Version 5 (Proxy-Sperre)
Wer es sich einfach machen will kann auch die fertige htaccess von Proxy-Sperre benutzen: Zum Download.

Version 6(Bot-Trap)
Ein weiteres Rundum-Sorglos-Paket zum Schutz vor Content-Grabbern, Hijack-Proxies und anderem bietet Bot-Trap.de an. Leider informiert die Seite (aus Sicherheitsgründen) nicht über ihre Arbeitsweise, so dass ich auch nichts dazu sagen kann.

Die beste Version (welche?)
Alle diese Lösungen haben aber eines gemeinsam. Sie sind nicht perfekt! Mit 2, 3 und 4 hat man viel zu viel Arbeit, die 1 sperrt zu viele Suchmaschinen aus und bei der 5 ist man abhängig von Domain-Union und wenn die mal einen Fehler machen und den Google Bot sperren kann das ganz schön ins Auge gehen. Und zur 6 weiß ich gar nichts…

Wie kann ich mich wehren?

So, jetzt kommen wir zum spaßigen Teil. Diese Idee stammt vom Slightly Shady SEO und funktioniert folgendermaßen:
Was würde passieren wenn Google die eigene Robots.txt missachtet und die eigenen SERP indiziert?
Dann müsste Google einen Cache dieser gecrawlten SERP anlegt und dann den Cache indiziert und einen Cache das Cache anlegen und den Cache des Cache indizieren und…(Endlosschleife!)

Genau dieses Prinzip werden wir uns zu nutze machen und damit sich die Proxybetreiber nicht so einfach wehren können verwenden wir gleich zwei Proxys.

Zu nächst einmal suchen wir unsere Proxys. Es bietet sich folgendes Google Suchkommando an:

inurl:example.com –site:example.com

Damit werden alle Seiten außerhalb der Domain example.com angezeigt die example.com in ihrer URL haben.
Dann suchen wir nach Ergebnissen die den Title oder das Snipped von unserer Seite haben. Diese findet man häufig unter URLs mit Einträgen wie …/nph-index/…

Wenn wir nun mehrere Proxys haben (seien es Proxy A und B), dann gehen wir auf Proxy A und Rufen proxyb.tld auf und in dessen URL Feld dann Google.com. In diese Google Suchbox geben wir site:proxya.tld ein. Die Original Idee sieht vor die Advaced Search zu verwenden und den Zeitraum auf Ergebnisse der letzten x Wochen zu beschränken, das ist in meinen Augen jedoch unnötig.

Jetzt haben wir eine URL in dieser Form:

proxya.com/http://www.proxyb.tld/http://www.google.com/search?q=site%3Aproxya.tld

Die müssen wir nur noch anlinken. Am besten nicht von einer eigenen Seite sondern über einen Social Bookmark Dienst oder mit einer kleinen Zubringerseite (z.B. ein Blog bei einem Freehoster).

Google folgt nun dem Link, ruft Proxy A auf, der ruft Proxy B auf und der ruft Google auf und Google sieht die eigenen Suchergebnisse und indiziert sie. Nur, dass Proxy A allen URLs sein ein proxya.tld/… voranstellt, genauso wie Proxy B ein proxyb.tld/ davor hängt und auf diesem Wege auch alle von der SERP Seite aus verlinkten Seiten wieder und wieder und wieder mit weiteren URL Präfixen indiziert werden.

Irgendwann sollte der Duplicate Content auf Proxy A und B ausreichen um beide aus dem Index zu kegeln und bis dahin werden ihre System Ressourcen mit dem Infinity Loop ein wenig belastet.

Falls nur ein Proxy euren Inhalt klaut könnt ihr als zweiten Proxy einen beliebigen wählen. Denn sie sind alle böse oder zumindest potentiell gefährlich! Außer sie sperren ihre Ergebnisseiten für Google aber dann passen sie ja auch nicht in unser Schema.

Noch etwas ausführlicher wird das ganze hier auf Englisch erklärt: How To Beat Proxy Hi-Jackers, and Have Fun While Doing It.

10 thoughts on “Wie man Hijack Proxys besiegt

  1. Matti,

    ein hijackender Proxy muß nicht unbedingt im Googleindex aufzufinden sein. Es gibt Proxies, die glatt Deine Position übernehmen, und es gibt auch Proxies, die nur mit einer absoluten Intensivsuche aufzufinden sind – je nach Antriebskraft und Ziel.

    Nachdem nun alle nur erdenklichen Abwehrmaßnahmen von uns entwickelt und eingesetzt wurden, mit gutem aber letztlich nicht ausreichendem Erfolg, ist der Weisheit letzter Schluß, daß der angreifende Proxy in das Umfeld des Senders weitergeleitet werden muß.
    Eine mit Notwehr zu umschreibende Maßnahme.

  2. Also ich hatte auch mal copyscape. Das Problem daran ist, das dieses System die Proxys nicht verhindern kann. Da nehm ich lieber meine Proxy-Sperre. Das funktioniert super und wird automatisch geupdated.

  3. Hallo, hatte auch schon mal eine komplette Webseite in einem Proxy. Zum Glück hatte das keinerlei Auswirkungen. Auch wird meine Startseite oft kopiert, die Diebe nehmen die Texte auch oft nicht weg von Ihren Seiten. Ich drück mir selbst immer die Daumen, dass nicht meine Seite aus dem Index fliegt und hatte auch immer Glück. Eine einfache Prüfung mach ich über diesen Dienst: copyscape.com

  4. Hallo Malte,

    danke für den tollen Beitrag. Hat mir wirklich weitergeholfen. Ich habe über den inurl Befehl keine Proxies für meine Seite ausmachen könne. Damit kann ich doch ziemlich sicher sein daß das Proxie Hijacking nicht für meinen kürzlichen Besucherrückgang verantwortlich ist oder?

  5. Pingback: SearchLab » Blog Archive » Das Backlink-Problem - Ursache für fallende Positionen bei Google

  6. Was du allerdings damit zerstörst ist die Zahl deiner Proxy-Besucher.

    Das ist richtig, aber welcher seriöse Besucher kommt schon via Proxy, von AOL-Usern einmal abgesehen? Und gerade AOL-User tauchen in Mißbrauchsstatistiken besonders häufig auf.
    Der Verzicht auf Proxyuser zugunsten der Sicherheit, ist nach meiner Einschätzung, nicht eine Alternative, sondern ein Muß.
    Wobei der Lösungsansatz von Lyoid bei weitem nicht ausreicht. Die Proxies, die mit URL-Hijacking in Erscheinung treten, sind NPH-Proxies, die die Variable HTTP_X_FORWARDED nicht zur Auswertung zur Verfügung stellen.
    Ein NPH-Proxy kann vom Server nicht erkannt werden – daher auch der vielfache und erfolgreiche Mißbrauch.
    Google crawlt sogar seine eigenen Suchergebnisse via NPH-Proxy.

    Zur sicheren Erkennung eines NPH-Proxies bedarf es einer PHP-Routine!

    Du solltst lieber versuchen nur Crawling via Proxy zu unterbinden …

    Wie soll das gehen? Es stehen lediglich die Daten zur Verfügung, die der Proxy bereit ist, zu übermitteln. Und die können unzureichend, ganz oder teilweise gefaked sein!

    … nur Crawling via Proxy zu unterbinden, was auch im Interesse von Google und Co ist.

    Furchtbar diese falschen Tatsachenbehauptungen!
    Wenn Google nicht in der Lage ist, einen NPH-Proxy überhaupt zu erkennen, dann kann Google diesbezüglich auch keinerlei Interessen bekunden, ganz gleich, wie diese auch immer geartet sein mögen.

    Und nocheinmal zu bot-trap.de/: Das kann die Lösung nicht sein!
    bot-trap.de/ erkennt und sperrt nur das, was bereits unangenehm aufgefallen ist. Jeder neue Proxy und jeder neue Contentklauer hat Freie Fahrt, bis er erwischt wird. Danach geht das Spielchen mit einer neuen 95-Cent-Domain wieder von vorne los.
    bot-trap.de/ vermag demnach lediglich Kollateralschäden und Trittbrettfahrer abzuwehren.

  7. Was du allerdings damit zerstörst ist die Zahl deiner Proxy-Besucher. Du solltst lieber versuchen nur Crawling via Proxy zu unterbinden, was auch im Interesse von Google und Co ist.

  8. Ich wurde auch schon mehrfach von einigen Proxy-Diensten gehijakt. Auf der Suche nach einer Lösung stieß ich auf deinen Blogeintrag. Die besten Ergebnisse erzielte ich mit der proxy-sperre. Ist auch von der Umsetzung und Pflege her am wenigsten aufwändig und auch für weniger erfahrene Webmaster einfach umzusetzen.

  9. Nett, daß sich immer mehr Leute diesem Thema zuwenden.
    Eines der größten Probleme ist es aber, daß die Täter die möglichen Lösungsansätze auch lesen und darauf sofort reagieren.

    Was Deine Idee mit der .htaccess anbelangt – vergiß’ es!

    Diesem Problem ist nicht mit statischen Sperren beizukommen. Und was Deine Spaßidee anbelangt: Hast Du schon einmal darüber nachgedacht, weche Kollateralschäden damit verursacht werden können?

    Greetz Predonna

  10. Man könnte auch einfach Youporn über den Proxy aufrufen. Diesen Vorgang ans Landgericht Hamburg melden und warten bis der Proxy bei Arcor gesperrt wird ;-)

    Cloaking würde ich persönlich nicht einsetzen wollen, die Idee mit der Schleife klingt aber interessant. Hat das schon jemand erfolgreich engesetzt?

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>