©Sergey Emelyanov 2025 | Alle Rechte vorbehalten
Vtiger bietet ein praktisches Modul namens Webforms an, mit dem Sie maßgeschneiderte HTML-Formulare generieren können. Diese Formulare lassen sich einfach in Ihre Website einbinden, um direkt Leads in Vtiger zu erfassen – beispielsweise für Module wie Leads, Kontakte, Kunden oder Deals. Doch mit diesem Komfort geht oft auch das Problem von Spam einher. Zwar ist eine Integration von ReCaptcha in Vtiger vorgesehen, aber diese Lösung funktioniert nicht immer perfekt oder entspricht nicht immer den Wünschen des Kunden. Denn zum einen kann die Verwendung von Captchas potenzielle Interessenten abschrecken, zum anderen funktioniert sie nicht in allen Konfigurationen.
In diesem Artikel möchte ich meine Methoden vorstellen, wie ich Webformulare in Vtiger vor Spam schütze und gleichzeitig für eine benutzerfreundliche Lösung sorge.
a) Einbindung eines unsichtbaren Feldes
Sie fügen in das Formular ein Textfeld ein, das beispielsweise wie folgt deklariert wird:
<input type="text" class="hot" value="">
Anstatt das Feld über das Attribut hidden zu verstecken, empfehle ich, dies mittels CSS zu tun. Mithilfe einer speziellen CSS-Klasse (in diesem Beispiel "hot") wird das Feld so gestaltet, dass es für echte Benutzer nicht sichtbar ist, aber von Bots erkannt und – fälschlicherweise – ausgefüllt wird.
b) Überprüfung auf Honeypot-Feld in Vtiger
Wenn das Formular abgesendet wird, können Sie auf der Vtiger-Seite überprüfen, ob das Honeypot-Feld ausgefüllt wurde. Normalerweise sollte dieses Feld leer bleiben; wenn es jedoch nicht leer ist, handelt es sich höchstwahrscheinlich um einen Spam-Eintrag.
Hierzu nehmen Sie eine Anpassung an der Datei modules/Webforms/capture.php
vor. Suchen Sie dort nach folgendem Codeabschnitt:
$moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage);
vglobal('app_strings', $moduleLanguageStrings['languageStrings']);
Unmittelbar danach fügen Sie den folgenden Code ein, der das Honeypot-Feld überprüft:
// Honeypot-Feld überprüfen
$honeypot = $request['unname'];
$returnURL = false;
try {
// Prüfe, ob das Honeypot-Feld gefüllt wurde. Falls ja, breche die Anfrage ab.
if ($honeypot != '') {
throw new Exception('Sorry, but we blocked your request due to antispam policy');
return; // Sie können hier zusätzlichen Code einfügen, um eine Fehlermeldung auszugeben.
}
} catch (Exception $e) {
// Optional: Loggen oder ausgeben der Fehlermeldung
echo $e->getMessage();
exit;
}
Mit diesem Code erkennen Sie automatisch Spam, sobald das Honeypot-Feld nicht leer ist. Die meisten Bots füllen dieses Feld aus, da sie davon ausgehen, dass es sich um ein Pflichtfeld handelt. So können Sie über 60 % des typischen Spam-Verkehrs effektiv abfangen.
Fazit
Die Integration der Honeypot-Methode in Webformulare von Vtiger bietet einen einfachen, aber effektiven Schutz gegen Spam, ohne die Benutzerfreundlichkeit zu beeinträchtigen. Während Captchas nach wie vor ihre Berechtigung haben, kann deren Einsatz potenziell abschreckend wirken. Eine Kombination der verschiedenen Ansätze – Honeypot, serverseitige Prüfungen, Ratenbegrenzungen und gegebenenfalls ReCaptcha – ermöglicht es, sowohl den Komfort für legitime Benutzer zu erhalten als auch das Risiko von Spam auf ein Minimum zu reduzieren. So sichern Sie Ihre Webformulare optimal ab und steigern die Qualität Ihrer Lead-Erfassung.
©Sergey Emelyanov 2025 | Alle Rechte vorbehalten