Zur Navigation

Bot-Catcher

1 Jörg Kruse

robots.txt habe ich nicht. Sollte ich eine anlegen, um zu gucken, ob er in eine Seite wandert, wo er nicht hindarf, um zu entdecken, ob er aggressiv ist?

Auch wenn du keine robots.txt hast, sollten die Aufrufe vorhanden sein (ergeben dann natürlich eine 404). Keine robots.txt bedeutet, die Bots dürfen alles. Um zu sehen, ob die Bots sich an die Regeln halten, musst du natürlich schon welche aufstellen.

Mein Catcher ist seit gestern installiert.

Was heißt Catcher genau?

25.04.2006 10:48

2 Mario

Mein Catcher ist seit gestern installiert... ich dachte nicht, dass da innerhalb kürzester Zeit so viele Bots rumschwirren :)

so kann man mit relativ wenig Aufwand die Aktivitäten der Bots überwachen. Kostet ja nichts, aber bringt viel.

Mario

25.04.2006 10:51

3 C)-(iLL@

@Mario: der Sbider kommt über den IP-Block 64.34.145.*

Was heißt Catcher genau?
*g Fänger - ich hab ein kleines Proggi geschrieben, das mir die User-Agents listet, wenn es kein Browser ist (die Liste ist noch im Aufbau), listet es seine IPs (die Seiten wären noch eine schöne Erweiterung) - kommt ein unbekannter UA rein, setzt es ihn in die Liste. Ich habe bisher nicht darauf geachtet, was reinkommt, seit dem Google-Ereignis dachte ich mal, wenn die Bots schon meine Daten sammeln, sammle ich mal die Bots. Awstats schien mir übertrieben, und die Statistik-Tools beim Hoster kosten.

Um zu sehen, ob die Bots sich an die Regeln halten, musst du natürlich schon welche aufstellen.
Gut, das kommt dann als nächstes. Bin ja noch Bot-Anfänger ^^

25.04.2006 10:55

4 Mario

vielleicht kannst Du ja mal beschreiben, was das Script alles macht und später machen soll. Ideen zusammentragen. Das Script interessiert mich :)

Mario

25.04.2006 11:09

5 C)-(iLL@

Das Script macht momentan nicht sehr viel... Ich habs für mein Framework geschrieben, es nutz also auch die Objekte desselben. Man könnte es aber ohne Probleme als Standalone-Script umschreiben.

1) Es hat eine Tabelle 'uapool', welches eine Sammlung von User-Agents ist, jeder mit einer ID. Kommt jemand oder etwas auf die Seite, so wird zuerst nachgeschaut, ob der UserAgent bekannt ist (also in uapool enthalten). Wenn nicht, wird er hinzugefügt. Händisch kann man dann festlegen, ob etwas ein Browser oder ein Robot ist (feld isrobot). Anfangs wird alles mal als robot angenommen, weil ich die Liste der UAs noch nicht habe.
2) Die Tabell uaips: Es wird nachgesehen, ob für den ua mit der gefundenen IP bereits ein Eintrag besteht, wenn nicht, wird er hinzugefügt (id, ip, host)

geplant:

3) Die Tabelle 'uasites' - wird das Skript in eine Seite eingebunden, so wird festgestellt, ob die relative URL der Seite in dieser Tabelle vorhanden ist. Wenn nein, wird sie hinzugefügt, um eine einmalige ID für jede Unterseite zu erhalten. die ID des Eintrags wird zur weiteren Verarbeitung ermittelt. Hier sollte noch festgelegt werden, ob ein robot diese Seite besuchen darf (Feld noindex)

4) Die ID des User-Agents mit der gefundenen IP (aus der Tabelle uaips) wird in die Tabelle 'uavisits' eingetragen, also die uasiteid und die uaipid, wenn noch nicht in uavisits vorhanden. sonst wird einfach das Feld 'visits' um 1 höher gesetzt. Dabei wird das Feld 'lastvisit' auf das aktuelle Datum gesetzt. Ich finde es nicht notwendig, das Datum jeden Besuchs zu notieren, der letzte und die insgesamte Anzahl reicht.

5) Die uabadbots-Tabelle: Hier muss ich noch überlegen, wie ich die bösen Bots finde, die Daten sind ja alle da. Vielleicht sollte man den IP-Bereich in ein einzelnes Regex packen und erstmal schauen, ob dieser stimmt oder nur ein Freak-Bot sich als wer anders ausgibt, oder einer als bot gekennzeichneter (isrobot) in eine Seite wandert, die als noindex gekennzeichnet ist und durch die robots.txt ausgeschlossen ist. Wenn hier einer reinrutscht, hätte ich gerne eine E-Mail.

Aus den vorhandenen Daten kann man dann später eine schöne Statistik aufbauen.

25.04.2006 12:28

6 Mario

Das hörst sich gut an. Schön wäre natürlich, wenn man das Script allgemeingültig bekäme. Meine .htacess beinhaltet viel Erfahrung, diese würde ich Dir gerne zur Verfügung stellen.

Mario

25.04.2006 13:02 | geändert: 25.04.2006 13:12

7 Jörg Kruse

Ich habe die Beiträge zu Rudys Catcher mal in einen eigenen Thread verschoben

25.04.2006 14:16 | geändert: 25.04.2006 14:19

8 Mario

ich lasse nur ganz bestimmte spider zu, alles andere Unkraut wird gnadenlos geblockt. Die nächst höhere Stufe ist dann eine (evt. kommende) Whitelist. ;)

Mario

25.04.2006 16:37

9 Mario

wenn ein unbekannter Spider mir Traffic verursacht und dabei auch noch eine existierende robots.txt ignoriert, womöglich auch noch breitbeinig über zig verschiedenen IPs kommt und während eines erfolglosen Scans auch noch die IP wechselt, der steht dann das letzte mal vor offenen Türen. Wenn Du denen nicht knallhart begegnest, machen sie es mit Dir :(

Der südasiatische Block und die angeblich afrikanischen Millionärssöhne die man zur Bank begleiten sollte, sind längst über weite IP-Blöcke gesperrt.

Mario

25.04.2006 16:45

10 C)-(iLL@

Damit wir uns verstehen: Dieses Skript übernimmt nicht das Blocken. Es sammelt Daten. Nur das. Geblockt werden muss dann über eine htaccess, oder Du machst Vorschläge, wie ich das hier einbringen soll. Bisher soll es nur mal laufen, sodass es Daten zur späteren Auswertung zusammenträgt.

Hier fehlt quasi noch alles, besonders eine Gui, welche die Daten anzeigt bzw. den Type des gecatchten User-Agents umschalten lässt. Aber es ist mal ein Anfang - was man dann mit den Daten macht, ist eine andere Frage.

[Code entfernt: die aktuelle Version gibt's hier.]

25.04.2006 18:09 | geändert: 28.04.2006 01:08