Zum Inhalt springen

Kommentar-Spamschutz per Referer

Gerade rollt mal wieder eine kleine Kommentar-SPAM-Welle über meine Weblogs. Ein guter Zeitpunkt einen SPAM-Schutz für Kommentare zu implementieren und zu testen: Ich schalte einfach eine Rewrite-Regel im Apache (geht auch per .htaccess), die alle Zugriffe auf mein Kommentar-CGI verhindert, wenn der Referer nicht eine meiner Domains ist.

Das ist natürlich kein sicherer Schutz, weil der Referer beliebig fälschbar ist. Aber wir wissen ja um die Intelligenz der meisten Spammer. Sollte ein Besucher seinen Übertragung des Referers abgeschaltet haben, bekommt er eine entsprechende Fehlermeldung. (Der Kommentar-Spammer bekommt die natürlich auch.)

Dieser Schutz lässt sich nicht nur mit Movable Type sondern auch mit allen Weblogsystemen umsetzen, die ein eigenes CGI-Skript bzw. eine eigene PHP-Datei für das Übermitteln der Kommentare verwenden.

Und so geht es: Voraussetzung ist ein Apache-Webserver mit aktiviertem Rewrite-Modul. Einfach eine .htaccess-Datei mit folgendem Inhalt anlegen und wohlfühlen. Ein entsprechender Eintrag in der Apache-Konfigurationsdatei geht natürlich auch.


RewriteEngine On
RewriteCond %{HTTP_REFERER} !erste-domain\.de [NC]
RewriteCond %{HTTP_REFERER} !zweite-domain\.de [NC]
RewriteRule /cgi/mt-comments.cgi /referer-error.html

Dabei sind folgende Werte beim Anpassen für euch zu ersetzen:
„erste-domain\.de“ und „zweite-domain\.de“ stehen für Domains, die einen korrekten Referer darstellen. Dort sind alle Domains einzutragen, von denen aus auf das Kommentar-Skript verwiesen wird. Die Punkte in dem Domainnamen sind durch einen Backslash zu entwerten. Pro Domain ist eine eigene Zeile einzutragen, also auch nur eine Zeile bei einer Domain oder beliebig viele Zeilen bei mehr Domains.
„/cgi/mt-comments.cgi“ ist der Dateiname des Kommentar-CGIs bzw. der PHP-Datei
„/referrer-error.html“ ist die Datei mit der Fehlermeldung, die angezeigt wird, wenn der Referer nicht zulässig ist

PS: Während ich diesen kleinen Beitrag geschrieben habe, hat mir diese einfache Regel bereits 39 SPAM-Kommentare vom Leib gehalten.

9 Kommentare

  1. Gerald Steffens

    >Sollte ein Besucher seinen Übertragung des Referers abgeschaltet haben, bekommt er eine entsprechende Fehlermeldung.

    ich gehe doch recht in der annahme, dass er die meldung erst erhält, wenn er den kommentar abgeschickt hat. da kommt aber nicht bei jedem freude auf 😉

  2. Zur Zeit ist das so. Ich werde aber noch einen entsprechenden Hinweis hier im Kommentarbereich einbauen.

  3. hi Jan,

    auch wir setzen die referer Technik ein.

    Denn wer den referer unterdrückt der hat was zu verheimlichen 😉

    nette Grüße
    Domain Union

  4. Das könnte man auch gut für Gästebücher Spam gebrauchen 😉 aber in der letzten zeit hat es zum Glück nachgelassen.

  5. cam2cam

    Der Spamschutz, der keiner ist
    siehe hier:

    [Edit: Link entfernt]

    viele suesse maedels dabei
    adios

    PS: besser wäre es keine urls zuzulassen

  6. cam2cam

    ok scheint doch zu funktionieren

    🙂

  7. Also ich würde noch die Möglichkeit in Betracht ziehen, daß ein „normaler“ Leser keinen Referrer schickt. Dies sollte in die .htaccess-Regel eingebaut werden, finde ich.

  8. Blogs sind eine tolle Sache. Habe mir WordPress und Weblog zugelegt. Allerdings war WordPress am Anfang sehr anflällig gegen Spam. Die kamen von überall her und erst ein Plugin konnte das bis jetzt verhindern. Dann noch ein Zusatztool, dass man die Einträge erst freischalten kann nachdem ich es gelesen hatte ist auch notwendig gewesen. So muss man halt in der Welt des Internets sich selbst durchhangeln und Wissen selbst aufbauen. Ein Lob an Jan, welcher das alles im Griff hat

  9. Dan

    Na das ist ja mal nen netter tip. kurz und knackig ohne grossen aufwand und dennoch sehr effektiv. ich glaube es gibt garnicht soviele lösungen um gegen diese SPAM-fluten anzukommen 🙂

    Mit netten Grüßen
    Internetmarketing

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.