itst-Elfitst.net — 100 % β

Pro-bono-Beratung - Kostenlos, aber nicht umsonst.

Spam-Statistiken

[Akismet][aki] hat bisher 6.795-mal Kommentarspam abgefangen. Das sind stolze 75,5 pro Tag. Nun, zu Hochzeiten kamen hier gut und gerne dreimal so viele an. Aber dank einiger kleiner Maßnahmen konnte ich das deutlich reduzieren.

Zusätzlich zu Akismet läuft hier seit Ende letzter Woche [Bad Behavior][bad]. Dieses Tool analysiert ankommende Anfragen (man beachte die Alliteration ;) ) und lässt solche nicht durch, die schlechtes Benehmen an den Tag legen. Zum Beispiel solche, denen HTTP-Header fehlen oder die ihre Header falsch kombinieren. Außerdem hat Bad Behavior eine eingebaute Liste von bekannten Spambots, deren Zugriffe es ebenfalls blockt. Es merkt sich auch, von welchen IPs unhöfliche Anfragen kamen und blockt weitere Anfragen von diesen IPs, wenn sie innerhalb einer bestimmten Zeitspanne auflaufen. Die Größe dieser Zeitspanne beträgt zunächst zehn Minuten. Aufrufe innerhalb dieser Zeitspanne werden automatisch geblockt. Für jeden geblockten Aufruf verlängert sich die Zeitspanne um weitere zehn Minuten.

Nach drei Tagen Betrieb hat [Bad Behavior][bad] 195 Aufrufe geblockt:

Geblockte Aufrufe Begründung
116 Required header ‘Accept’ missing
28 Header ‘Pragma’ without ‘Cache-Control’ prohibited for HTTP/1.1 requests
9 Header ‘Expect’ prohibited in HTTP/1.0 requests
9 Prohibited header ‘Proxy-Connection’ present
6 Prohibited header ‘Range’ present
5 User-Agent beginning with ‘Jakarta Commons’ prohibited
5 A User-Agent is required but none was provided.
4 Connection: TE present, not supported by MSIE
4 Header ‘TE’ present but TE not specified in ‘Connection’ header
4 I know you and I don’t like you, dirty spammer.
3 User-Agent beginning with ‘User-Agent: ’ prohibited
2 User-Agent containing ‘DTS Agent’ prohibited

Eine kurze Erläuterung zum [Accept-Header](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1): Dieser HTTP-Header wird von User-Agents (Webbrowser und anderen Softwares, die Anfragen an Webserver stellen) bei Anfragen mit gesendet, um dem Server zu verstehen zu geben, mit welchen Inhalten sie umgehen können. Ein Webbrowser wird zum Beispiel *text/html* und *image/jpeg* (und viele weitere) angeben, um dem Server zu sagen, dass er mit HTML-Dokumente und JPG-Bilder umgehen kann. Bad Behavior geht davon aus, dass ein User-Agent, der auf einen Accept-Header verzichtet (und so vorgibt, mit allen Dokumenttypen umgehen zu können) kein Webbrowser sein kann und blockt daher solche Anfragen.

Nach den Erfahrungen der letzten Tage scheint [Bad Behavior][bad] einen guten Job zu machen. Es filtert zuverlässig unhöfliche Anfragen im Vorfeld aus und entlastet dadurch [Akisment][aki]. Weiter so ;)

[bad]: http://www.ioerror.us/software/bad-behavior/
[aki]: http://akismet.com/

9 comments

  1. Boris sagt:

    Aha aha, fein. Das werde ich mir mal genauer anschauen. Vielleicht kann ich mir damit noch mehr lästige Zeitgenossen vom Server halten als ich es jetzt manuell per .htaccess schaffe…

  2. […] Dank eines Artikels von Sascha Carlin bin ich auf ein interessantes WordPress-Plugin gestoßen, welches angetan ist, Spambots direkt beim Zugriff auf Blog-Dokumente abzufangen und zurückzuweisen. […]

  3. You might also wish to try the Bad Behaviour 2.0 Beta 1 which I released today. :)

  4. Perun sagt:

    Hi Sascha,

    was muss man machen um die Statistiken zu bekommen warum die Einträge blockiert wurden?

    Grüße

  5. AJ sagt:

    SELECT count( id ) AS cases, deniedreason
    FROM wp
    badbehaviorlog
    GROUP BY denied_reason
    ORDER BY cases DESC

    Oder so in der Art ;)

  6. Anne sagt:

    Kann man damit auch sein phpBB -Forum schützen??Das wäre ja cool. Aber wo bzw. in welche File sollte der code? Was wäre da am geeignesten?

    Es Grüßt

    Die Anne

  7. Anne sagt:

    also meine natürlich von Bad Behaviour .. “require once etc…”

  8. sc sagt:

    @Anne: Bad Behavior läßt sich prinzipiell in jedes PHP-Script einbauen, so zumindest behauptet es der Autor. Nicht, daß ich es schon ausprobiert hätte :D

  9. […] Seit der letzten Spam-Statistik sind knapp sechs Wochen vergangen. […]

Deine Meinung?