Formularübermittlungen mit URL ablehnen

7

Ich habe einen Kunden, der Drupal verwendet und ein E-Mail-Kontaktformular hat. Das Problem ist, dass sie täglich Spam über das Formular erhalten.

Ich habe das Re-Captcha-Plugin, das Captcha-Plugin, das Anti-Spam-Plugin (Askimat) und das Honeypot-Plugin ausprobiert.

Die Täter verwenden Programme wie XRumer, die Captchas lösen können, und keines dieser Plugins konnte die Bots stoppen.

Ich frage andere, ob sie Ratschläge dazu haben, wie diese Spam-Übermittlungen für Kontaktformulare gestoppt werden können.

Da dieses bestimmte Formular keinen legitimen Grund für eine URL im Hauptteil haben sollte, könnte ich möglicherweise URLs erkennen und dann einen Fehler zurückgeben, wenn sie beim Senden eines Formulars vorhanden sind.

JasonDavis
quelle
Mollom könnte eine bessere Lösung sein als. es geht über den Catpcha-Schutz mit Filtermethoden hinaus.
Andre Baumeier
Ich habe einmal eine benutzerdefinierte Regel geschrieben , die Kommentare für bestimmte Schlüsselwörter mit einem langen regulären Ausdruck (so etwas wie \b(?:purses|dental|headphones)\b) überprüfte, weil ich für bestimmte Arten von Produkten viel Spam bekam. Es hat ziemlich gut funktioniert ... Regeln könnten die Kommentare bedingt genehmigen oder ablehnen, je nachdem, ob der Kommentarkörper meinen regulären Ausdruck bestanden hat oder nicht. Letztendlich, als der Spam-Level eskalierte, habe ich nur die Regel geändert, um die beleidigenden Kommentare zu löschen, ohne sie manuell zu überprüfen :-p
Thirdender

Antworten:

3

Es ist möglich, Kontaktformulare entweder mit dem Webform- Modul oder dem Entityforms- Modul zu erstellen .

Das Schöne an letzterem ist die Möglichkeit, Felder anzuhängen und diese Felder mit dem Feldvalidierungsmodul zu validieren , das eine Vielzahl von Validierungsoptionen bietet.

Es gibt ein Webform-Validierungsmodul zur Verwendung mit Webforms, aber ich denke, Sie werden feststellen, dass Entityforms mit Feldvalidierung etwas flexibler und möglicherweise einfacher zu verwenden sind.

Entweder sollte man Text nach "<a href =" oder einem anderen unerwünschten Wort oder Ausdruck (Blacklist Matching) oder Konstrukten mit regulären Ausdrücken durchsuchen lassen, wenn Sie dazu neigen.

Triskelion
quelle
1

Ich weiß nicht, was XRumer kann und was nicht, aber es würde mich überraschen, wenn es die Antwort auf alle möglichen Fragen hätte. In diesem Sinne würde ich Captcha Riddler vorschlagen, was meiner Meinung nach großartig funktioniert.

Enzipher
quelle
1

Eine sehr einfache Alternative mit benutzerdefiniertem Code (ich persönlich denke, die Installation einer Reihe von Modulen für eine so einfache Aufgabe ist ein gewaltiger Overkill):

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
   if ($form_id == 'my_form_id') {
     $form['#validate'][] = 'MYMODULE_form_link_removal_validation';
   }
}

function MYMODULE_form_link_removal_validation($form, &$form_state) {
  // Basic regex for anchor tags
  $regex = '/<a[^>]*>/i';

  if (preg_match($regex, $form_state['values']['body_field'])) {
    form_set_error('body', t('Links are not allowed in this field.'));
  }
}

Sie können dies etwas weiter gehen, wenn Sie einen geeigneten Filter dafür implementieren möchten (siehe hook_filter_info()), und auch versuchen, Links außerhalb von Ankern abzugleichen, wenn der Filter "URLs in Links konvertieren" aktiviert ist. Der Mechanismus ist der gleiche, die String-Matching-Methode müsste nur entsprechend ersetzt werden.

Clive
quelle
0

Ich bin mir nicht sicher, ob ich nach einer URL suchen soll, aber es gibt eine Seite auf drupal.org, die auf dem Kontaktformular - Spam-Prävention - über Spam-Prävention spricht . Es werden einige Module erwähnt, die Sie noch nicht ausprobiert haben.

Es gibt auch eine Reihe von Spam-Verhinderungsmodulen auf der folgenden drupal.org-Seite - Spam-Verhinderungs-Drupal-Wiki-Seite

littledynamo
quelle
0

Hier ist der vollständige Modulcode (D6), der URL-Übermittlungen in Webforms blockiert . Wenn Sie eine D7-Version wünschen, lassen Sie es mich bitte wissen.

Selbst wenn Sie URL-Übermittlungen blockieren, würden Bots immer noch versuchen, Beiträge zu veröffentlichen! Ich habe eine D6-basierte Site und alle Spammer aus der ganzen Welt versuchen, sie auf irgendeine Weise mit oder ohne URL zu spammen.

AgA
quelle