Zur Navigation

Abwehr gegen Bot-Zugriffe

1 Don

Hallo zusammen,

seit einiger Zeit wird meine Webseite von tausenden Bots täglich besucht. Ich würde diese gerne von meiner Webseite ausschließen.

Bisher habe ich ein Captcha für den Zutritt meiner Seite eingebaut, um zumindest den anfallenden Traffic zu reduzieren. Dies ist natürlich keine dauerhafte Lösung, zumal diese nicht gerade Besucherfreundlich ist.

Außerdem logge ich seit gestern Mittag alle IPs und die dazugehörigen Browser mit. Seit dem habe ich 8865 Bot-Zugriffe von verschiedenen IPs. Auffallend ist, dass immer der User Agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.3 (build 01218))" auf meine Seite zugreift. Google spuckte mir für diesen UA "Mail.ru Agent" aus. Nun liefere ich diesem User Agent nicht mehr meine Webseite, sondern nur noch ein JavaScript mit einer Endlosschleife aus. Der Erfolg ist hierbei jedoch eher fraglich. Zumindest erwarte ich von diesem UA keinen Zugriff von einem richtigen User.

Eine weitere Idee wäre einen Zugangslink mittels JavaScript anzuzeigen, um auf die Seite zu gelangen. Hierbei (wie auch bei meiner Endlosschleife) ist die Frage, ob Bots JavaScripte ausführen. Hierfür würde mir noch ein entsprechendes Script fehlen (JavaScript ist nicht meine Stärke ^^). Ich bin für Vorschläge dankbar.

Ich habe schon fast 10000 IPs mittels .htaccess deny ausgesperrt, aber hier scheinen ständig neue IPs aufzutauchen.

Hat sonst noch irgendwer Ideen bzw. Vorschläge, was ich in dieser Situation tun kann?

Ich würde mich über Lösungsansätze freuen, die aktuelle Situation ist extrem nervig.

Vielen Dank im Vorraus.

13.05.2011 16:59

2 Jörg Kruse

Die meisten Bots führen vermutlich kein JavaScript aus.

Einen JavaScript-Link könntest du z.B. so realisieren:

<a href="#" onclick="window.location.href = 'http://example.org/next-page.html'; return false">hier geht's weiter</a>

Dabei bleiben aber natürlich auch Suchmaschinenbots sowie Besucher mit deaktiviertem JavaScript auf der Strecke. Und falls es andere Links auf deine Seiten gibt, könnten Bots auch darüber auf diese gelangen

Die IP-Adressen einzeln in der htaccess zu sperren, halte ich für ein sinnloses Unterfangen - wie du selbst ja schon bemerkt hast, wechseln diese bei vielen Bots ständig, und der Server muss bei jedem Aufruf die Riesenliste abarbeiten. Ich würde mich da auf Bots beschränken, die häufig unter derselben Adresse wiederkehren und vielleicht noch bestimmte häufig genutzte Adressbereiche sperren. Und manchmal kann man ja auch andere Merkmale wie den User-Agent-String zum Sperren nutzen

die aktuelle Situation ist extrem nervig

Geht das schon auf die Performance oder ist nur der Blick ins Logfile nervig? dass ein großer Teil der Zugriffe auf nutzlose Bots zurückgeht, ist denke ich leider normal.

13.05.2011 18:37

3 Don

Hi Jörg,

Also hauptsächlich stört mich, dass meine Besucherstatistik dadurch verfälscht wird. Ich habe eine Besucheranzeige auf meiner Seite, die natürlich nicht mehr sinnvoll ist, wenn mir tausende Bots einen Besucht abstatten. Aber ich denke, da ich nun den Hauptverursacher nicht mehr auf meine Seite lasse, wird das besser. Und mit dem JavaScript-Link halte ich den Rest draußen.

Ich werde den JavaScript-Link vor den eigentlichen Code von Joomla CMS packen, dann kommt auch kein Bot mit einem anderen Link hinein.

Ich habe übrigens mitlerweile 13187 IPs von Bots in meiner DB. Es nimmt stätig zu ^^.

Vielen Dank und Gruß,
Don

14.05.2011 19:33 | geändert: 14.05.2011 19:36

4 Don

Noch ein Nachtrag:

Im Moment ist es mit dieser Lösung zwar nicht möglich, ohne JavaScript auf den Link zu klicken, er ist aber im HTML-Code sehr leicht ersichtlich und auslesbar.

Wäre es vielleicht möglich folgendes zu erreichen:
Im JavaScript wird ein Link einer Variable zugewiesen, sodass er aus dem Quellcode der Seite auslesbar ist (z.B. index.php?check=ab). Vor dem Öffnen des Links wird aber der Link noch umgebaut (z.B. index.php?check=xy). Auf diese Weise könnte man im Backend Crawler identifizieren (denn niemand würde den Quelltext der Seite nach dem Link durchforsten) und man hätte den Link besser gesichert. Hat vielleicht jemand eine Idee für eine Umsetzung. Der richtige Link sollte nicht allzu einfach auslesbar sein.

Ich hoffe meine Ausführung war nicht zu wirr ^^

19.05.2011 19:26

5 Jörg Kruse

Vielleicht so:

<script type="text/javascript">
function open_url(dummy_url) {
  var a = 'htt';
  var b = 'p://ex';
  var c = 'ample.org/inde';
  var d = 'x.php?che';
  var e = 'ck=xy';
  window.location.href = a + b + c + d + e;
}
</script>

<a href="#" onclick="open_url('http://example.org/index.php?check=ab'); return false">hier geht's weiter</a>

19.05.2011 19:57

... 1 Jahr später ...

6 Kiffing

Ich habe es so gemacht, daß ich in mein v-Bulletin-Forum eine Zusatzfrage eingebaut habe (Bist Du ein Mensch?). Das hat dann irgendwie fast alle Bots abgeschreckt und ich habe seitdem kaum ein Problem mehr. Oft sind die einfachen Lösungen die besten. ;)

02.06.2012 20:40

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]