Das hört sich alles ziemlich unausgegohren an.
Auf der einen Seite machst Du eine Aktion, damit die Seite, die Deine Adresse enthält - sowas habe ich wirklich noch nie gehört! - eine Sonderbehandlung erfährt und Roboter aussperren soll. Auf der anderen Seite sagst Du, dass Du eigentlich nicht in der Lage bist, Roboter zu erkennen... Was denn nun?
Ja, ich lebe mit Kompromissen.
Es gibt Robots Requests, die ich nur mit einer vorgeschalteten index.php mit Logfile auswertung erfassen könnte.
Die Bandbreite der Bots ist verschieden. Welche prioritätet setzt man?
Im http Bereich halte ich es für einen Overkill, alles erfassen zu wollen.
Hier nun ein paar einfache Prinzipen
global:
User-Agent ist '-' = Ich will es nicht, Das hat sich bewährt
Das ist der einzige User-Agent, den ich negativ verwerfe. Ich brauche diese Regel noch nicht einmal zu notieren.
Ein User-Agent hat entweder
--eine einem Index-Bot angemessenen formalen Aufbau, das heisst er ist
mit einer Regexp zu erfassen. Die Regexp verlangt, dass eine Seite zur Beschreibung des Bots vorhanden ist.
--oder eine einem Browser entsprechende Form, wobei bekannte Typen zugelassen werden als auch Formen von unbekannten aber geforderten Mustern.
Diese Handhabung garantiert, dass ich Agents wie
- "core-project/1.0"
- "Xenu Link Sleuth 1.2j"
etc gar nicht erfassen brauche, weil die schlich den zwei oberen Masken nicht entsprechen.
Statischer Bereich:
Ich setze eine Variable mit
SeEnvIfNoCase für folgende Typen
Die Variablen sind entweder robot oder browser
Am Schluss hat nur das Zugriff, was entweder robot oder browser als Variable gesetzt hat.
Alles andere wird nicht zugelassen
Browser:
Mozilla/5 oder
Mozilla/4 gefolgt von MSIE [67]
MSIE 5 will ich nicht. Gibt nur RefererSpam ist effektiv nicht mehr
unterwegs
Opera9 (alles andere macht nur Mist)
Konqueror
Webkit
Explizite Index-Bots welche ich will
Ein Browser den ich nicht kenne, dessen String aber einem bestimmten Muster gehorchen soll.
Alles andere fliegt raus
Dann habe ich für den Zugriff auf Bilder zips docs und odts nochmals spezielle Bedingungen.
Das hat damit angefangen dass ich die idiotische Google Bildersuche abstellen wollte (zusammen mit einem Indexverbot im robots.txt)
Wie du siehst, es geht bei mir nicht primär darum Spambots zu erkennen
sondern zu definieren was ich will
und dabei einen klugen Freiraum zu lassen für Dinge die ich nicht kennne
Aber der Indexbot Marke
"Eigenbau/1.0" soll sich eine eigene Testwiese suchen.
Unter diese Muster erwünschter Dinge schlüpfen mir einige Bots durch. Aber das ist nicht sooo wichtig.
Jetzt habe ich alles sortiert in der Variable robots (erwünschte notabene) oder browser
Ist wohl klar, dass ich damit eine Sonderbehandlung für die Seite, die meine Mail-Adresse enthält einrichten kann.
Es gibt noch andere Seiten, die ich von Bots nicht indexiert haben will, und ich verwende es als Riegel für jene, die meinen robots.txt nicht respektieren.
Ich kontrolliere alle 3 Monate meine Massnahmen und nehme dazwischen auch Stichproben in der Suche nach ungerechtfertigten 403.
Soweit geht das gut. Aber ih habe noch http Spam-Requests. Aber das ist mir letzlich egal, da dieser Spam nun den Server nicht mehr wesentlich belastet.
Die Massnahme hat definitiv geholfen die Spamrequests drastisch zu reduzieren. ich rede hier von typischen Gästebuch-Spammern.
Im cgi-Bereich lasse ich eine Prüfung mit den dortigen Methoden geschehen. Die prüfen aber nur relativ seltene Dinge wie manipulierte Queri-Strings und Referer die aus der Requestadresse gefüllt wurden.
Ich weiss, dass meine Politik der positiven Bestimmung extrem unbeliebt und kontrovers ist. Vielleicht nur für meine Website angebracht. Aber sie ist wirkungsvoll und hat mir nun seit 2 Jahren Ärger erspart.
mfg Beat
Fühle mich definitiv nicht mehr in der Lage, zu dieser Stunde ordentlich zu schreiben.
Wünsche dir eine gute Nacht.