Bezüglich Bots loswerden und Scraping unterbinden: Ich versuche ja Cloudflare zu vermeiden, habe aber aufgrund von Shared Hosting derzeit keine Option für serverbasierte Basteleien und nutze daher ein vierstufiges Setup, bestehend aus Filtern in der .htaccess, dem Add On IP Threat Monitor, dem Add On Bot Guard und den diversen Einstellungen, die XF selbst offeriert.
In der .htaccess werden (mehr aus historischen Gründen) diverse Useragents blockiert und per regEx Einiges an noise ausgefiltert, die auf Word-Press Konfigurationsdateien und ähnlichen Kram zielen und noch ein paar Sachen mehr. Mengenmässig aber alles nicht mehr wirklich relevant.
In IP Threat Monitor blockiere ich sehr umfänglich verseuchte ASNs und Länder - derzeit etwas über 100 Länder und etwas über 650 ASNs. Das Ganze wird ergänzt durch die integrierte IP Reputation Abfrage bei Proxycheck.io, die neue Übelkübel entdeckt und direkt blockiert. Suchmaschinen (konfigurierbar) und eingeloggte User werden durchgelassen, egal, woher sie kommen. Das reduziert die anfragenden IPs an normalen Tagen um ~50%, an botreichen Tagen um bis über 90%. D.h. an normalen Tagen kommen zwischen 800 und 1500 durch, an botreichen Tagen können es auch mal 2.500 sein. Das zeigt schon: Grundsätzlich effektiv und hilfreich, aber far from perfect. Und die ASN Liste braucht regelmässige Pflege.
Nach IP Threat Manager laufen die Anfragen in Bot Guard, auch hier können eingeloggte User sowie Suchmaschinen passieren. Beim Rest wird per Javascript ein Risk Scoring gemacht und ggf. ein Captcha ausgespielt. Das funktioniert vollautomatisch und durchaus gut - vom Bottraffic, der IP Threat Monitor passiert, wird ein guter Teil so aussortiert.
Was dann noch durchkommt landet bei XF und da sind die beiden wesentlichen Einstellungen: Keine Suche für Gäste (Permission) und Gäste sehen nicht alle Foren sowie in einigen nur die Threadüberschrift (Permission) und ansonsten nur das jeweils erste Posting eines Threads (Add On "First Post only" von AndyB). Selbst wenn gescraped wird ist der Schaden also limitiert.
Ein aktuelles Beispiel was da wo gefiltert wird und wie sich der Traffic zusammensetzt samt Bildchen habe ich drüben im Bot-Thread gepostet:
In Summe bin ich damit ziemlich zufrieden. Es läuft reibungslos und im Prinzip auch wartungsfrei, solange die Situation in Sachen Botquellen statisch bleibt. Architektonisch ist es natürlich suboptimal, die "Firewall" als XF add on zu haben, aber allen Bedenken und Unkenrufen zum Trotz gab es bislang keine Loadprobleme. Bot Guard wiederum bekommt ja nur einen kleinen, vorgefilterten Teil der Gesamtlast ab (was btw. auch im Manual empfohlen wird) und so kommt es auch da zu keinen Loadproblemen.
Die ASN Liste ergänze ich laufend auf Basis neuer auffälliger ASNs, die im Dashboard bei IP Threat Monitor aufpoppen, das ist vergleichsweise wenig zeitaufwändig. Soweit zu kommen, dass die ASN-Liste 90% des üblen Traffics ausfiltert ist allerdings durchaus mit sehr viel Zeitaufwand verbunden. All in also ein Setup, das ich durchaus empfehlen kann. Insbesondere, wenn man Cloudflare vermeiden will und auf Shared Hosting. Um so mehr, da IP Threat Monitor in den letzten Tagen einige Updates bekommen hat, die die Analysearbeit mit dem Add On drastisch erleichtern und verbessern.
Problematisch sind eigentlich nur zwei Dinge, die aber nerven gewaltig:
1.) ASNs, die eine solide Mischung aus echten Gastusern und resident Proxies beinhalten, die man also nicht komplett sperren kann. Da gehören aktuell z.B. die diversen deutschen DSL-Provider dazu (oder eben die in Ländern, in denen man echte User und auch echte Gäste hat). Da hilft im Moment eigentlich nur Bot Guard und das ist nicht perfekt. Es gibt da zwar die Option, bestimmte ASNs standardmässig mit einem Captcha zu versehen (was ein guter Weg wäre), allerdings funktioniert die bei mir aktuell nicht, warum weiss ich noch nicht.
2.) Wenn sich die Botlage drastisch ändert und sehr viele neue ASNs auftauchen ist zügig Handarbeit gefragt, um die ASN Liste zu aktualisieren und das nervt. Das war nach Monaten der Ruhe gestern der Fall - offenbar ist da entweder ein neuer Player im Spiel oder aber die Bösewichter, die bei Yandex im Rechenzentrum gehostet haben sind nach dem Angriff der Ukraine auf die Yandex Rechenzentren zügig in neue Gefilde umgezogen.
Hier, wie sich der Spike gestern darstellte und welche Auswirkungen er hatte:
In Summe überlege ich, allen Bedenken zum Trotz doch mal Cloudflare auszuprobieren. Im Bot-Thread drüben bei XF nutzen das die meisten und es gibt mittlerweile eine ganze Reihe offenbar gut funktionierender Regeln, die man schlicht nur übernehmen muss und dann eben Stück für Stück auf den eigenen Bedarf anpassen. Insbesondere die einfache Möglichkeit, komplette Länder und ASNs gezielt mit Captcha zu versehen würde mir das Leben deutlich erleichtern.