Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

HowTo: Proxy-Hijacking verhindern und beenden

Dieses Forum ist für Informationen über Google gedacht (Ausser PageRank!).
Jansen
PostRank 3
PostRank 3
Beiträge: 72
Registriert: 02.12.2004, 11:33
Wohnort: Pinneberg

Beitrag von Jansen » 04.07.2007, 15:15

Die tatsächlich einzige sichere Methode, Proxy-Hijacking zu verhindern, ist ein Reverse-Forward DNS Check der IP, über die der Googlebot auf eine Website zugreift.

Der Hijack wird dadurch ausgelöst, daß Google zwar den Proxy crawlt, dieser in dem Moment aber die zu hijackende Seite scraped. Der User-Agent bleibt dabei erhalten (also immer noch 'Mozilla/5.0 (compatible; Googlebot/2.1; +https://www.google.com/bot.html)', die IP-Adresse ist die des Proxys.

Jetzt ist ein Script gefordert, das bei Vorhandensein von 'Googlebot' im User-Agent den Hostname zur IP-Adresse besorgt, um nachzuschauen, ob Googlebot tatsächlich von einer IP-Adresse aus der googlebot.com-Domain unterwegs ist.

Ist im Hostname der Substring '.googlebot.com' nicht enthalten, sind die 'harmlosen' Proxies und gefakten User-Agents schon identifiziert.

Sollte der Substring '.googlebot.com' enthalten sein, muß zum Hostname die IP-Adresse abgefragt werden. Ist diese ungleich der Original-IP-Adresse, sind die 'bösen' Proxies, die DNS-Spoofing betreiben, auch identifiziert.

Folgendes kleine Script (PHP, aber sicherlich leicht in andere Sprachen zu übertragen) sollte daher am Anfang von jeder einzelnen Seite ausgeführt werden:

Code: Alles auswählen

$ua = $_SERVER['HTTP_USER_AGENT'];
if( strstr($ua, 'Googlebot') )
{
	$ip = $_SERVER['REMOTE_ADDR'];
	$hostname = gethostbyaddr($ip);
	if( !strstr($hostname,'.googlebot.com') )
	{
		echo "Unauthorized";
		exit;
	}
	$real_ip = gethostbyname($hostname);
	if( $real_ip != $ip )
	{
		echo "Unauthorized";
		exit;
	}
}
.
.
.
// Hier fängt die eigentliche Seite an
Ich gebe bewußt den Statuscode 200 zurück und nicht 403 oder ähnliche, da Google Seiten mit dem 200-Status am schnellsten verarbeitet und dadurch gehijackte Seiten am schnellsten 'unproblematisch' werden.

Mit diesem kleinen Code-Schnipsel hat die mühsame und aussichtslose Jagt auf Proxy-IP-Adressen ein Ende.

Für alle, die bereits betroffen sind:
Wenn das Script installiert ist, könnte man auf der eigenen Seite noch eine Liste mit den Links zu den gehijackten Seiten anlegen, also auf
https://www.badproxy.com/nph-proxy1.cgi ... dpage.html, um Google zu einem Recrawl der gehijachten Seiten zu ermutigen.

HTH
Zuletzt geändert von Jansen am 04.07.2007, 16:47, insgesamt 1-mal geändert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

FL4PJ4CK
PostRank 4
PostRank 4
Beiträge: 132
Registriert: 06.05.2007, 10:00
Wohnort: Baden-Baden

Beitrag von FL4PJ4CK » 04.07.2007, 16:28

Hi!
Dank für das Tut :)
Aber ich hätte jetzt noch die Frage, wo ich den Codeschnipsel einbinden muss. Meine Website isst in HTML (leider von NetObj*ects Fusion) geschrieben. Kann ich da überhaupt mit dem php-code arbeiten?

Das Problem ist, dass ich bis jetzt noch keine Sprache kann... :-?
LG, Nico

Bild

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 04.07.2007, 16:34

Danke! - Scheint aber noch was zu fehlen in dem Code-Schnipsel (nach "$real_ip = ").

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Jansen
PostRank 3
PostRank 3
Beiträge: 72
Registriert: 02.12.2004, 11:33
Wohnort: Pinneberg

Beitrag von Jansen » 04.07.2007, 17:02

@bull:
Weia, wie peinlich... :roll:
Ich habe die fehlende Zeile gerade eingefügt.

@FL4PJ4CK:
Folgendes sollte am Anfang, also noch vor dem html-Tag stehen:

Code: Alles auswählen

<?php
Code-Schnipsel
?>
Hierbei kommt es jedoch darauf an, ob der Webserver so konfiguriert ist, daß er .html-Files durch den PHP-Interpreter schickt. Das lässt sich im Zweifelsfall feststellen, indem Du den Schipsel auf einer Testseite einbaust, diese auf den Webserver hochlädst und Dir dann den Quellcode anschaust. Sollte der Code-Schnipsel im Quelltext zu sehen sein, wurde die Datei nicht durch den PHP-Interpreter geschickt (was wohl wahrscheinlich ist). Dann hast Du leider Pech gehabt.

Es gibt offenbar noch die Möglichkeit, den Code per .htaccess einzubinden - daran arbeite ich aber noch...

herrmeier
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 28.12.2006, 17:04

Beitrag von herrmeier » 04.07.2007, 17:15

@Jensen
Vielen Dank für den Code. Werde ihn in Wordpress mit

<?php
Code-Schnipsel
?>

einbauen.
Nehme mal an, dass die Bots von MSN & Co. in Ruhe weiterarbeiten können.

@FL4PJ4CK
Hier ein Link zu NOF mit PHP: https://www.paby.de/nof-tips/html/datei-upload.php Allerdings müssen alle Seiten auf die Endung .php umbenannt werden.
Bedeutet natürlich erstmal ein Rückschritt für die Suchergebnisse bei den Sumas.

FL4PJ4CK
PostRank 4
PostRank 4
Beiträge: 132
Registriert: 06.05.2007, 10:00
Wohnort: Baden-Baden

Beitrag von FL4PJ4CK » 04.07.2007, 17:20

Mh, hab da was vergessen: mein Hostingpaket unterstützt kein php :o :-? Ist mir gerade wieder eingefallen. Das Paket hat halt schon über 5 Jahre auf dem Buckel :D
Also muss ich wohl doch noch auf eine .htaccess-Version warten :(
LG, Nico

Bild

Schwede
PostRank 7
PostRank 7
Beiträge: 495
Registriert: 09.10.2005, 12:41

Beitrag von Schwede » 04.07.2007, 18:39

Es gibt offenbar noch die Möglichkeit, den Code per .htaccess einzubinden - daran arbeite ich aber noch...
Wenn Du das Ergebnis dann hier veröffentlichst, wäre das nett.
(Gibt auch freiwillige Links als Entlohnung)

Gruss

Schwede

semtex
PostRank 6
PostRank 6
Beiträge: 381
Registriert: 25.04.2007, 22:50

Beitrag von semtex » 04.07.2007, 19:30

Jansen hat geschrieben: ........ daran arbeite ich aber noch...
Nun tu mal nicht so auf dicke, als wenn Du das Rad hier neu erfunden hättest :wink:
Dieser Code wurde schon in verschiedenen Variationen auf diversen deutsch und englischsprachigen PHP Foren veröffentlicht.

Hier mal vom Verfasser eine Abänderung für eine weitere Suchmaschine(MSN) :

Code: Alles auswählen

 $ua = $_SERVER&#91;'HTTP_USER_AGENT'&#93;;

if&#40;stristr&#40;$ua, 'msnbot'&#41; || stristr&#40;$ua, 'googlebot'&#41;&#41;
&#123;
$ip = $_SERVER&#91;'REMOTE_ADDR'&#93;;

$hostname = gethostbyaddr&#40;$ip&#41;;

if&#40;!preg_match&#40;"/\.googlebot\.com$/", $hostname&#41; && !preg_match&#40;"/search\.live\.com$/", $hostname&#41;&#41;&#123;



Jansen
PostRank 3
PostRank 3
Beiträge: 72
Registriert: 02.12.2004, 11:33
Wohnort: Pinneberg

Beitrag von Jansen » 05.07.2007, 07:43

@semtex:
Sorry, wenn es so rübergekommen ist. Aber wenn es so wäre, hätte ich wohl kaum Matt Cutts (den eigentlichen Erfinder, bzw. Ideengeber) im Eingangspost verlinkt. :wink:
___________

Zur Einbindung per .htaccess muß eine externe Datei mit folgendem Inhalt angelegt werden:

Code: Alles auswählen

<?php
Code-Schnipsel von oben
?>
In die .htaccess muß jetzt folgender Eintrag:

Code: Alles auswählen

AddType application/x-httpd-php .html
php_value auto_prepend_file "/absoluter/pfad/zu/externer/datei.php"
Hierbei muß in der ersten Zeile '.html' durch die entsprechend genutzten Dateiendungen ersetzt werden.

Hierbei ist zu beachten, daß in der Apache-Config midestens 'AllowOverride Options FileInfo' für das entsprechende Root-Verzeichnis des Webservers gesetzt werden muß und der Webserver tatsächlich PHP unterstützt (sorry, FL4PJ4CK!).

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 07.07.2007, 13:43

Eine sehr simple Idee, und dennoch sehr gut brauchbar!

Allerdings kann die Pruefung derzeit beim Script des 1. Posts noch unterlaufen werden, d.h. sie ist nicht wasserfest. Denn das hier wuerde beim Script des 1. Postst auch durchgelassen werden IMHO:

gefaked.googlebot.com.meinedomain.de

Und findige Leute wissen das, und werden es damit austricksen. Bei der semtex Variante sieht es da schon besser aus.

Es ist also noch eine wasserfeste Ueberarbeitung notwendig, am besten gleich komplett mit MSN und Yahoo Integration ;)
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 07.07.2007, 14:02

Evtl. Problem kann folgendes Szenario darstellen: manche Foren Admins berichten davon von einer ganzen Horde von Bots besucht zu werden. Nehmen wir mal an 80 GoogleBots stuerzen sich auf ein Forum, was zu 80 recht zeitintensiven NsLookUps fuehrt, kann das ganz schoen den Server ausbremsen, zumindest kurzzeitig. Es waere interessant, inwieweit so etwas gut genug gecached wird von heutigen Betriebssystemen.
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

dogi
PostRank 1
PostRank 1
Beiträge: 11
Registriert: 05.03.2005, 13:27

Beitrag von dogi » 07.07.2007, 14:37

... super Sache, eine Frage habe ich nun noch, wie kann ich ausprobieren ob der Code auch auf meiner Seite funktioniert wenn ich Ihn eingebaut habe ?

Das ist doch nun so richtig ?

Code: Alles auswählen

<?php
$ua = $_SERVER&#91;'HTTP_USER_AGENT'&#93;;

if&#40;stristr&#40;$ua, 'msnbot'&#41; || stristr&#40;$ua, 'googlebot'&#41;&#41;
&#123;
$ip = $_SERVER&#91;'REMOTE_ADDR'&#93;;

$hostname = gethostbyaddr&#40;$ip&#41;;

if&#40;!preg_match&#40;"/\.googlebot\.com$/", $hostname&#41; && !preg_match&#40;"/search\.live\.com$/", $hostname&#41;&#41;&#123;
      echo "Unauthorized";
      exit;
   &#125;
   $real_ip = gethostbyname&#40;$hostname&#41;;
   if&#40; $real_ip != $ip &#41;
   &#123;
      echo "Unauthorized";
      exit;
   &#125;
&#125;
?>
Vielen Dank.

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 07.07.2007, 14:51

Idee 1: Du koenntest (wenn schon, denn schon) die GoogleBot-Besuche in eine Datei loggen lassen, dann bis zu ner Woche warten, dann sollte da was drin sein.

Idee 2: Um das Authorized zu provozieren besuchst Du Deine eigene Seite mit irgendeinem Tool oder Firefox Addon was den UserAgent GoogleBot hinfaked.
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

dogi
PostRank 1
PostRank 1
Beiträge: 11
Registriert: 05.03.2005, 13:27

Beitrag von dogi » 07.07.2007, 15:11

Airport1 hat geschrieben:Idee 2: Um das Authorized zu provozieren besuchst Du Deine eigene Seite mit irgendeinem Tool oder Firefox Addon was den UserAgent GoogleBot hinfaked.
... ja das habe ich gerade gemacht mit dem Firefox Addon, und es funktioniert.

Vielen Dank.

wolli
PostRank 9
PostRank 9
Beiträge: 1395
Registriert: 01.01.2006, 18:48

Beitrag von wolli » 07.07.2007, 15:35

hi,

das ist eine feine Sache:-)
Nur es ist auch eine heise Kiste!

Abgesehen von der erhöhten Last und der verzögerten Seitenauslieferung
kann das auch schnell in die Hosen gehen.

1 Fehler und alle deine Seiten fliegen aus dem index
wenn du durch den Fehler google aussperrst.

Aber vom Grundgedanke wirklich nicht schlecht.


nette Grüße
wolli

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag