Trackback-, Kommentar-, Referrer- und E-Mail-Spam
Ein Abwehrmaßnahmen-Katalog
Im Oktober 2005 gab es hier 662 Trackback-Spam-Versuche, im November 462, im Dezember 1704, und in den ersten drei Januartagen sind es bereits 274. Was, sollte es so weitergehen, für den gesamten Januar knapp 3000 Trackback-Spam-Versuche bedeuteten. Allerdings sind solche Versuche dank einiger Vorkehrungen bisher auch meistens nur Versuche geblieben; lediglich gestern sind erstmals seit einem halben Jahr mal wieder zwei Spam-Trackbacks durchgekommen.
Der letzte Kommentar-Spam liegt gottseidank mittlerweile auch schon eine lange Zeit zurück, und der Referrer-Spam hält sich hier in erträglichen Grenzen. Hier zeige ich Ihnen eine ganze Reihe von Abwehrmaßnahmen, mit denen Sie auch Ihre eigene Website einigermaßen Spam-frei halten können.
Was man gegen Trackback-Spam unternehmen kann
Als wichtigste Maßnahme hat sich eine Deaktivierung der Trackbacks für ältere Beiträge erwiesen. Wie man rechts sehen kann, setzen die Spammer, in diesem Fall kamen sie aus einem ukrainischen Netzwerk, wahllos irgendwelche ID-Nummern von zumeist älteren Beiträgen ein. Ein entsprechender Filter in der Trackback-Software könnte sinngemäß so aussehen:
if (trackback_id < 800) {
header(„HTTP/1.1 403 Forbidden“);
exit;
}
Damit sind schon mal 80% der Spam-Trackbacks abgeblockt. Der Rest läuft durch zwei weitere Filter: der Excerpt und der URL des Trackbacks werden mit einer Blacklist verglichen. Meine eigene Blacklist
Der PHP-Code für die Filter sieht so aus:
$block = false;
foreach ($blacklist as $i) {
if (strpos ($excerpt, $i) !== false || strpos ($url, $i) !== false) {
$block = true;
}
}
if ($block == true) {
header(„HTTP/1.1 403 Forbidden“);
exit;
}
Mit diesen relativ simplen Maßnahmen habe ich es geschafft, im letzten halben Jahr ca. 5000 Trackback-Spam-Postings erfolgreich zu verhindern – nur zwei kamen durch.
Maßnahmen gegen Kommentar-Spam
Grundsätzlich hilft natürlich auch hier eine Blacklist. Man sucht, wie oben bei Trackback-Spam beschrieben, im Kommentar, in der URL und in der E-Mail-Adresse nach Begriffen aus der Blacklist und blockiert bei Übereinstimmung das Posten des Kommentars. Meine Blacklist für Kommentare
Zusätzlich habe ich eine zeitbasierte IP-Sperre eingebaut, so dass höchstens zwei Kommentare pro 15 Minuten von der selben IP-Nummer aus gepostet werden können. Eine ausführliche Anleitung finden Sie im Eintrag Kommentarspam mit PHP per IP-Sperre verringern.
Viele Spam-Kommentare sind hier übrigens nur deshalb nicht gepostet worden, weil in meinem Kommentar-Formular der erste Button der Vorschau-Button ist. Drückt man also bei ausgefüllten Kommentarfeldern die Return-Taste (oder lässt sie per Script auslösen), wird der Kommentar nicht gepostet, sondern eine Vorschau angezeigt, was die Scripte der Spammer natürlich nicht kontrollieren. Sollte bei Ihnen die Reihenfolge der Buttons anders sein, könnte es sich lohnen, sie umzudrehen.
Da Spammer zwar – vorsichtig ausgedrückt – extrem unangenehme Menschen, aber nicht dumm sind, versuchen sie solche Gegenmaßnahmen in ihren Spam-Scripten natürlich irgendwie zu umgehen. Seit einem halben Jahr habe ich deshalb eine weitere Maßnahme eingebaut: Mein Kommentar-Formular enthält ein unsichtbares Feld mit dem Namen „mail“:
<p style="display: none;">Dieses Feld bitte nicht ausfuellen!<input type="text" name="mail" value="" />
Da die Spam-Scripte in der Regel alle Felder ausfüllen, also in diesem Fall auch das unsichtbare „mail“-Feld, muss man per PHP einfach nur abfragen, ob das Feld leer ist. Wenn ja, wird der Kommentar gepostet, wenn nicht, handelt es sich mit ziemlicher Sicherheit um Spam und wird deshalb blockiert.
Seither habe ich übrigens keinen einzigen Kommentarspam mehr erhalten.
Anmerkung: Surft jemand mit ausgeschalteten Stylesheets (gibt’s das?), sieht er zwar das Feld, aber er sieht dann auch die Bitte, das Feld nicht auszufüllen.
Was tun gegen Referrer-Spam?
Natürlich helfen auch hier Blacklists. Man kann bestimmte Referrer, Bots oder User Agents per PHP aussperren, eine ausführliche Anleitung finden Sie im Eintrag Bot- und Spider Blocking, Teil 1.
Das ganze kann man auch mit Einträgen in der .htaccess-Datei bewerkstelligen, die entsprechende Anleitung finden Sie im Eintrag Bot- und Spider Blocking, Teil 2. Meine eigenen .htaccess-Einträge zum Blockieren von Referrer-Spam finden Sie hier
E-Mail-Spam
Haben die Spammer erst einmal Ihre E-Mail-Adresse in ihren Datenbanken, ist es schwer bis unmöglich, die Spamflut einzudämmen. Daher sollten Sie Ihre Haupt-Adresse nirgends veröffentlichen. Wenn überhaupt (wie z. B. in Ihrem Website-Impressum), dann nicht als Text, sondern als Bild, damit sie von E-Mail-Harvestern nicht einfach aus dem Quelltext herausgelesen werden kann.
Weitere Tipps im Umgang mit E-Mail-Spam finden Sie in den Einträgen Spam King und Vermeidungsstrategien und Spam Vermeidungsstrategien II.
Ähnliche Beiträge:
Gratinierter Rosenkohl Blick zurück ins Blog
Kommentare:
Bei den Kommentaren handelt es sich um fremde Inhalte, die sich „esse est percipi“ nicht zueigen macht. Verantwortlich für den Inhalt eines Kommentars ist der jeweilige Verfasser.
Vielen Dank für den Artikel!
Einen kleinen Hinweis hätte ich aber noch:
Bei der Filterung der Blacklist, wäre es nicht performanter, gleich den Forbidden-Header zu schicken, wenn ein Eintrag gefunden wurde, anstatt erst die gesamte Liste durchsuchen zu lassen und erst dann den Header zu senden?
Das kann man selbstverständlich auch machen – die obigen Beispiele sind ja auch nur als Anregung für eigene Lösungen gedacht. Wenn man allerdings mehrere Filter hintereinander schaltet (wie z.B. hier), ist die Methode, ein Flag zu setzen, wahrscheinlich eleganter. Zumal die Listen bzw. Arrays ja nicht allzu lang sind, so dass man von einer Verzögerung eigentlich nichts bemerken dürfte.
Ich hab diesen Kommentar grad mit einem Textbrowser geschrieben. Scheint zu funktionieren ;)
Jedoch funktioniert der mit JavaScript realisierte „Zur*ck“-Button in der Vorschau nicht! Muss man manuell zur*ck gehen.
Aber ansonsten …
Doch, Karsten, es scheint alles zu stimmen ;-) Diese E-Mail hat mir mein Kommentarsystem vorhin geschickt:
Betreff: Kommentar Spam
Datum: 4. Januar 2006 13:49:43 MEZ
An: X@qxm.de
Datei: http://www.qxm.de/digitalewelt/20060104-122723.html?com=1#kommentar
Name: nochmal Karsten
E-Mail: XYZ@gmx.de
Website:
IP: 194.XXX.XXX.XXX
Sollte dieser Kommentar angezeigt werden, dann stimmt etwas mit der Filterung nicht :(
(Die E-Mail-Adressen bzw. die IP-Nummer wurden unkenntlich gemacht)
Jo, funzt alles, hab ja nichts anderes behauptet.
Ich wollte nur anmerken, dass der von mir verwendete Browser links2 mit dem „Zurück“-Button auf der Vorschau-Seite nichts anfangen kann.
In Textpattern gibt es die Möglichkeit eine spamgeschützte e-Mail-Adresse zu veröffentlichen. Da erscheint zwar die e-Mail-Adresse, wird aber im Quelltext unkenntlich gemacht. Praktisch. Mit dieser Maßnahme habe ich seitdem nie mehr Spam über meine e-Mail-Adresse bekommen.
Aus eigener Erfahrung:
Um einen Großteil meines Kommentar-Spams einzudämmen (ich verwende ein komplett selbst geschriebenes CMS), hat es anfangs gereicht, im eMail- und Name-Feld auf eine Relation zu meiner Domain bzw. dem Namen meiner Website zu prüfen.
Auf Deutsch: Viel Spam kommt beispielsweise mit der eMail-Adresse xyz@mitro.at daher. Da die Verwaltung der Adressen meiner Domain nur über mich läuft und ich meine eigenen Kommentare sowieso nicht über das Formular meiner Website poste, kann ich einfach alle Einträge blockieren, deren eMail mit “@mitro.at“ aufhört.
Mittlerweile verwende ich natürlich auch Blacklisting und Ähnliches, aber es war (zumindest bei mir) mal ein sehr wirkungsvoller Anfang.
Ich hoffe, ich hab mich möglichst mißverständlich ausgedrückt.
Hallo Michael,
gegen E-Mail Grabbing hab ich mir was einfaches einfallen lassen, ich verwende einfach ein kleines Formular, damit meine Email Adresse erst nach einem Klick angezeigt wird.
Ich habe nicht genau eine Statistik aufgestellt, aber bilde mir ein weniger belästigt zu werden.
Auf meiner Kontaktseite sieht man das Formular im sidebar und unter: Verbergen der E-Mail Adresse ist es besser beschrieben.
Just my 2 Cents
Gruss aus Salzburg
Rene
Andere blokieringsmögligkeit kan man auch durch .htaccess file machen.
Siehe
Saving some valuable bandwidth – The Net is Dead
und
Blocking spam domain referrals with .htaccess
Via .htaccess files wird zum Beispiel auf der Erste url wörter auf gekannte splogs verhindert.
Im zweiten Fall kann man domains blokieren.
:)
FlemmingLeer
Kommentar schreiben:
FAQ (Häufig gestellte Fragen)
Kommentare:
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Henning zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Mesrop zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Hopper 1.0b7 (Update: 1.0b9)
Schlagwörter

