Kurz gesagt: individuell. Ich habe die Requests getrackt und in den Daten nach Mustern gesucht. Anfangs alle Daten von getallheaders() und Daten von $_SERVER sowie Date/Time, später dann nur noch ausgewählte Daten. Mit den Mustern habe ich dann Filter programmiert. Die bei mir bereits vorhandenen Filter fürs Tracking habe ich auf die Requests angewandt. Dazu gehören die IP-Listen der Big 5 Cloud-Anbieter, die diese selbst anbieten und die ich zu MMDB Files konvertiert habe, sowie ASN MMDB Files.Janush schrieb:Wie hast du deinen Botschutz konzipiert?
Zuletzt (bis Vorgestern) konnten somit viele Bad Bots vorm Crawlen/Scrapen gehindert werden, aber bei den schlimmeren der erste Request nicht, sondern nur die darauf folgenden, und das bisher ohne Verwendung einer Tracking-Database, mittels der Muster bei wiederkehrenden Requests erkannt werden können. Ein effektiver Erfolg ist also auch mit einfachen Mitteln, ohne Captcha und ohne POW und ohne Cookies möglich.
Mein Bad Bot Blocker basiert auf PHP. Die Requests bereits am Server-Eingang blocken ist bei Webhost nicht drin. Mittels .htaccess wäre ein Blocken auch möglich, aber ist zu umständlich. PHP taugt ganz gut dafür. Die Request an sich können so zwar nicht geblockt werden, aber der Zugriff auf den Content.
Ja. Es gibt wohl derzeit zwei Anbieter: Cloudflare (Pay) und Anubis (Free). Meine Ansage zu Anubis ist in #58 verlinkt.Janush schrieb:Hatten wir schon über Cloudflare und so Zeug gesprochen?
Mit Formulardaten ... Das betrifft welches Angriffsszenario genau? Die Requests kommen auch mit Blocken per PHP am Server an und sind im HTTP Log und Access Log gespeichert. Wenn du wie bei mir den Content blockst, kommen sie an das Formular nicht ran.
Vorhersagen für die Zukunft, oder ein Bad Bot Blocker für alle Zeiten gibt es nicht. Siehe den ChangeLog bei Anubis. Da wurde der Core schon mehrmals angepasst. Also Bad Bot Blocker programmieren und Füße hoch ist nicht drin. Man muss stetig die Requests checken und nachbessern.
Zuviel an Details meines Bad Bot Blockers will ich nicht verraten, was aber auch den Umstand betrifft, dass er sehr individuell ist und exakt auf meine Websites angepasst wurde. Das kann nicht 1:1 auf alle Websites angewandt werden.
Wie schon gesagt: Tracke die Requests. Suche darin nach Mustern. Blocke per Muster.
Aber ... habe aktuell mit starkem Besucherrückgang zu tun und weiß noch nicht woran das liegt. Es könnte eventuell daran liegen - was nicht unwahrscheinlich ist - dass die Bad Bots komplett abgesprungen sind, weil sie in den letzten Tagen weiterhin massiv aktiv waren, aber 0 kb Content gesrapt haben. Es könnte sein, dass die verbliebene Besucherzahl alles Humans sind. Bei Experimenten vor über einem Jahr beim Thema "Tracking filtern" war die Besucherzahl auch massiv gesunken, aber diese waren zu fast 100 % alles Humans.
Das würde eventuell auch eine Vermutung matchen, die wiederum auch die Formular-Angriffe betreffen. Es gab die Vermutung, dass die Bad Bots das Matomo-Tracking bedienen, indem diese die fetch() Requests an Matomo senden. Ob das direkt oder über die Webpages gemacht wird, war nicht herauszufinden. Aber im Matomo Tracking gabs Visits, die nur aus einem getrackten Event bestanden, ohne das der Pageview getrackt wurde. Bei dir könnte es also sein, dass die Webpages mit den Formularen gar nicht aufgerufen werden, sondern die GET/POST direkt gesendet werden. Wie das zu vermeiden wäre weiß ich auch nicht. Eventuell alles auf JS DOM umprogrammieren, dass die Formulare nicht hardcoded, sondern mit JS generiert werden.
Ergänzung ()
Ein guter Einstieg ist, die Block-Regeln vom Matomo Plugin TrackingSpamPrevention im eigenen Blocking zu verwenden. Das verwendet auch die Cloud-IP Listen der Big 5 Clouds. Zudem verwendet es die ASN MMDB und blockt per ASN Organisation Name.
https://github.com/matomo-org/plugin-TrackingSpamPrevention/
→ Configuration.php (Liste der Namen).
Die wird stetig up to date gehalten.
Zuletzt bearbeitet: