Wie du deine Drupal Website gegen Spammer schützt

  • Autor: Karsten

Spammer sind schnell. Sehr schnell. Gerade einmal seit zwei Wochen und einem Tag existiert deine Drupal Installation und schon passiert folgendes:

  1. der erste Registrierungsversuch eines vermeintlichen Spammers
  2. der erste Kommentarspam will sich auf deiner Website breit machen

Was nun?

1. Anmeldungen vermeintlicher Spammer begegnen

Von Hause aus erlaubt es Drupal, dass deine Besucher sich selbst als Benutzer registrieren, also ein Benutzerkonto anlegen können. Allerdings besagt die Standardeinstellung auch, dass hierzu die Bestätigung eines Administrators erforderlich ist. Du kannst allerdings auch festlegen, dass diese Bestätigung entfällt oder dass nur Administratoren Konten anlegen dürfen. Mit der letzt genannten Einstellung bist du das Problem dann auch wirklich los.

Den Haken bei "E-Mail-Verifikation" würde ich in jedem Fall stehen lassen, damit hast du sichergestellt, dass sich niemand mit der E-Mail-Adresse eines Anderen nur so zum Spaß auf deiner Seite anmeldet.

Generell solltest du dir überlegen, ob eine Benutzerregistrierung überhaupt für deine Website Sinn macht. Welche zusätzlichen Features sollen dadurch freigeschaltet werden? Willst du das Kommentieren deiner Beiträge von einer Registrierung abhängig machen? Damit verhinderst du eher, dass überhaupt jemand kommentieren will.

Es gibt bessere Möglichkeiten, dich vor Kommentarspam zu schützen.

Wenn du Co-Autoren für deine Website brauchst, die kannst du auch direkt als Admin einrichten. Hast du jedoch in irgendeiner Form Abonnenten deiner Homepage, ob zahlend oder nicht, dann kann die Benutzerregistrierung durchaus sinnvoll sein.

Was machst du aber nun als Admin, wenn jemand ein Konto beantragt hat? Dein Drupal informiert dich per E-Mail über den Vorfall. Aber was dann? Nach Bauchgefühl entscheiden? Besser nicht. Unterstützung bei der Bewertung des "Antragstellers" kann dir hier das Spambot Modul bieten.

Es überprüft Registrierungsversuche daraufhin, ob dein potenzieller zukünftiger User schon unangenehm bei Stop Forum Spam aufgefallen ist. Diese Website bietet eine Liste von gemeldeten Spammern an. Schön sortiert nach Nutzernamen, Emailadressen und IP-Adressen.

Ein Allheilmittel kann diese Liste natürlich auch nicht sein, denn wer kann schon dafür garantieren, dass sich dein zukünftiger Nutzer nicht z.B. rein zufällig einen Usernamen ausgesucht hat, der sozusagen schon "vorbelastet" ist? Oder das sich gerade ein "brandneuer" Spammer bei dir registrieren lassen will? Dennoch bist du jetzt schon auf einer wesentlich sichereren Seite.

Das Modul kann auch schon vorhandene Benutzer scannen und diese ggf. direkt löschen, blockieren oder aber gar nichts tun.

Es verhindert jedoch keine automatisierten Anmeldeversuche auf der Website. Um diese zu verhindern bzw. zu erschweren hat sich der Einsatz sogenannter Captchas bewährt.

Drupal bietet mit dem gleichnamigen Captcha Modul eine komfortable Möglichkeit Captchas zu generieren und zu integrieren. Installiere und aktiviere das Modul inklusive "Image Captcha" und konfiguriere es unter "Konfiguration" > "Benutzer" > "Captcha".

Die Einstellmöglichkeiten sind weitgehend selbsterklärend. Als Standardaufforderung zur Captcha-Eingabe wähle ich gern "Math". Das ist zur Identifizierung menschlicher, registrierter Kommentargeber meist ausreichend und stellt auch nicht eine so große Hürde dar, wie manch andere Möglichkeiten.

Die "user_register_form", die der Registrierung als Nutzer der Website dient, schütze ich dabei allerdings mit dem schwerer zu umgehenden Challenge-type "Image" und sorge oft über die Berechtigungen dafür, dass nur registrierte User Kommentare abgeben dürfen. Das ist aber häufig kontraproduktiv, denn viele Kommentarwillige möchten sich nicht erst auf einer Website registrieren müssen, um Ihre Meinung sagen zu können.

Schon nach kurzer Zeit sind die ersten fehlgeschlagenen, automatisierten Anmeldeversuche unter "Berichte" > "Statusbericht" im Admin-Menü zu sehen.

Die Arbeit des Spambot Moduls kannst du über "Berichte" > "Aktuelle Protokollnachrichten" begutachten. Benutze hierzu den Filter Typ "spambot".

Es gibt noch weitere Möglichkeiten der Anmeldung vermeintlicher Spammer zu begegnen. Diese zwei Beispiele sollen aber an dieser Stelle genügen.

 

2. Kommentarspam verhindern/unterbinden

Es gibt viele Möglichkeiten, um Kommentarspam zu verhindern oder doch wenigstens erheblich einzudämmen.

Die Holzhammer Methode: Erlaube keine Kommentare.

Das macht natürlich nicht immer Sinn, ist aber z.B. bei einer reinen Firmenwebsite durchaus ein probates Mittel. Hierzu bearbeitest du am besten deine Inhaltstypen. Standardmäßig also nur den Inhaltstyp "Article".

Wähle also im Admin Menü "Struktur" > "Inhaltstypen" > "Article". Ganz unten auf dem Formular klickst du links auf den Link "Einstellungen für Kommentare". Setze die "Standard-Kommentareinstellung für neue Inhalte" auf "Geschlossen".

Die einzelnen Optionen bedeuten:

  • Öffnen: Benutzer mit der Berechtigung „Kommentare erstellen“ dürfen Kommentare erstellen.
  • Geschlossen: Die Benutzer dürfen keine Kommentare erstellen, aber vorhandene Kommentare werden angezeigt.
  • Ausgeblendet: Kommentare werden nicht in der Ausgabe angezeigt.

Da du diese Einstellung im Inhaltstyp vorgibst, hast du damit das Standardverhalten für alle weiteren neuen Beiträge vom Typ "Article" festgelegt. Das Schöne daran ist, dass du je nach Bedarf dennoch in jedem einzelnen neu zu erstellendem "Article" von dieser Einstellung abweichen darfst und kannst.

Das Captcha Modul hilft auch hier

Ja - richtig. Das Capcha Modul läßt sich auch für dieses Problem nutzen. Sei dir aber darüber klar, das es durchaus Leute gibt, die keine Lust auf Captcha-Abfragen haben. Schon gar nicht auf die lustigen Buchstabensalat-Bildchen, wie man sie öfter antrifft. Da ist es je nach Einstellung ja manchmal auch wirklich ein Glücksspiel, den richtigen Text zu erraten.

Ganz diskret testen, ob da ein Mensch kommentiert

Ein wesentlich subtileres Mittel, um festzustellen, ob der Kommentierende auch wirklich ein Mensch und kein Bot ist (ein anderes Ziel haben Captchas ja nicht) ist es, bei den "Einstellungen für Kommentare" unter "Vorschau des Kommentars" die Option "erforderlich" zu wählen.

Diese Einstellung kannst du allerdings nicht für einzelne Beiträge vornehmen, sondern du musst sie zwingend bei dem entsprechenden Inhaltstyp vornehmen. Also, solange du keine eigenen Inhaltstypen erstellt hast: beim Inhaltstyp "Article".

Sweets für den Bot: Honeypot

So wie Bären von Honig magisch angezogen werden, so werden Spambots von Formularfeldern angelockt. Wenn diese durch ihre Bezeichnung auch noch die Möglichkeit bieten einen Link auf die eigene Homepage zu platzieren, gilt das um so mehr. Hier setzt das Honeypot Modul an. Es fügt ein hidden field (verstecktes Feld) in die entsprechenden Formulare ein, um Spambots dazu zu verleiten hier einen Eintrag vorzunehmen.

Ein menschlicher Nutzer sieht dieses Feld erst gar nicht, aber der Bot. Findet Honeypot hier etwas, so wird die Formulatübertragung blockiert. Solltest du auf deinen Formulare schon ein Feld nutzen, dass den gleichen Namen trägt, wie das von Honeypot überwachte Feld, so kannst du es natürlich in der Konfiguration umbenennen. Gib ihm aber weiterhin eine recht "verführerische" Bezeichnung wie z.B. "Homepage", "Website", "E-Mail" oder ähnlich.

Zusätzlich überwacht das Honeypot-Modul auch noch die Zeit, die benötigt wird, um ein Formular auszufüllen. Spam bots sind im Allgemeinen daraufhin optimiert möglichst viele Eintragungen in möglichst kurzen Zeit vorzunehmen. Standardmäßig geht Honeypot davon aus, dass ein menschlicher User 5 Sekunden zum Ausfüllen eines Formulars benötigt. Aber auch diese Zeitspanne kannst du in der Konfiguration anpassen.

Wer schneller ist, ist ein Spambot. Die Übertragung des Formulars wird geblockt.

Fazit

Es gibt viele böse Jungs bzw. Bots da draußen, aber du kannst dich und deine Website jetzt schon ganz gut verteidigen.

Die hier vorgestellten Möglichkeiten sind aber bei Weitem noch nicht alle Optionen, die Drupal anbietet. Mit dem Mollom Modul z.B. kannst du den gleichnamigen Webservice Mollom damit beauftragen potenziellen Spam aufzuspüren. Den Service gibt es auch in einer kostenlosen Version "Mollom Free" - darüberhinaus wird's allerding schnell relativ teuer, wie ich finde.

Eine Suche auf der Drupal Website in der Modul Kategorie "Spam prevention" für Drupal 7 brachte heute (03.04.2015) ein Ergebnis von sage und schreibe 93 passenden Modulen:

Also - viel Spaß beim Austesten wink.


Nicht vergessen: Bei Fragen - fragen! Nutze einfach den Kommentarbereich.

Karsten Paech

Aus Gandhi, der Film:

Auge um Auge führt nur dazu, dass die ganze Welt erblindet.

Neuen Kommentar schreiben