Formulare auf Webseiten, wie z. B. Kontakt-, Registrierungs-, Buchungs- und Angebotsformulare, sind unverzichtbare Bestandteile digitaler Interaktionen. Diese Formulare sind jedoch sehr anfällig für Missbrauch durch Spam-Nachrichten, Bots und gefälschte Benutzer. Insbesondere wenn Sie auch bei Verwendung von reCAPTCHA immer noch Spam-Formulare erhalten, sind fortgeschrittenere Maßnahmen erforderlich.
In diesem Artikel erklären wir Schritt für Schritt mehr als 10 fortschrittliche Sicherheitstechniken, die sowohl auf PHP-basierten Seiten als auch auf WordPress-basierten Systemen gegen gefälschte Formulare angewendet werden können, zusammen mit Beispielcode.
1. Verwendung von Google reCAPTCHA v2 / v3
-
Die Verwendung von reCAPTCHA v2 ("Ich bin kein Roboter") oder v3 (Risikoanalyse im Hintergrund) reduziert Spam.
-
Fortgeschrittene Bots können reCAPTCHA v2 jedoch umgehen. Daher ist es allein nicht ausreichend.
PHP-Beispiel:
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$secret = 'YOUR_SECRET_KEY';
$verify = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}&remoteip={$remoteip}");
$captcha_success = json_decode($verify);
if (!$captcha_success->success) die("Bot erkannt");
2. Honeypot-Methode
Versteckte Felder, die der Benutzer nicht sieht, aber Bots ausfüllen.
PHP:
if (!empty($_POST['honeypot'])) {
die("Bot erkannt!");
}
HTML:
Plugin für WordPress:
-
WP Armour – Honeypot Anti Spam
⌛ 3. Kontrolle der Formularübermittlungszeit
Bots füllen das Formular in der Regel sehr schnell aus. Anträge, die vor 3 Sekunden eingehen, können abgelehnt werden.
session_start();
if (time() - $_SESSION['form_start'] < 3) die("Zu schnell gesendet, könnte ein Bot sein");
♂️ 4. IP- und User-Agent-Kontrolle
Blockieren Sie dieselben IPs oder ungültige User-Agents, die mit einer großen Anzahl von Formularen eingehen.
if ($_SERVER['HTTP_USER_AGENT'] == '' || preg_match('/curl|bot|python/i', $_SERVER['HTTP_USER_AGENT'])) die("Bot erkannt");
5. Intelligente Formularfeldanalyse
Bots füllen in der Regel jedes Feld aus. Wenn jedoch in optionale Felder keine sinnvollen Daten eingegeben wurden, kann dies Spam sein.
-
Keine leeren Felder > verdächtig
-
Zufällige Zeichen im Namen eingegeben > verdächtig
6. IP- und länderbasierte Blockierung
Blockieren Sie Bots aus bestimmten Ländern mit Cloudflare oder GeoIP.
-
PHP GeoIP
-
Für WordPress: iQ Block Country
7. Zwei-Faktor-Authentifizierung (Formularbestätigungs-E-Mail)
Nach dem Ausfüllen des Formulars wird dem Benutzer eine E-Mail gesendet. Wenn er diese nicht bestätigt, wird der Vorgang nicht ausgeführt.
-
Besonders empfehlenswert für Angebots-/Buchungsformulare.
8. JavaScript-gesteuerte Übermittlung
Lösen Sie den Formularversand nur mit JS aus. Systeme ohne JS (Bots) können nicht senden.
document.querySelector("form").addEventListener("submit", function(e) {
// diese Kontrolle muss auf dem Server erfolgen
});
9. Zusätzlich zu reCAPTCHA: Friendly CAPTCHA oder hCAPTCHA
-
Friendly CAPTCHA → komfortabler in Bezug auf die Benutzererfahrung
-
hCAPTCHA → mehr visuelle Tests, Google reCAPTCHA-Alternative
Für WordPress: hCaptcha for WordPress Plugin
10. Intelligente Protokollierung + Manuelle Überprüfung
-
Welche IPs haben wann wie oft gesendet?
-
In welchen Feldern wurden immer die gleichen Daten eingegeben?
-
Verfolgen Sie dies durch Protokollierung
$log = date("Y-m-d H:i:s") . " | " . $_SERVER['REMOTE_ADDR'] . " | " . $_POST['email'] . "\n";
file_put_contents("form_log.txt", $log, FILE_APPEND);
11. Spam-Erkennung durch Inhaltskontrolle (mit Regex)
Blockieren Sie E-Mails, Namen und Nachrichtenfelder, wenn bestimmte Zeichenmuster vorhanden sind:
if (preg_match('/(viagra|casino|win money|bit.ly|http\:|https\:)/i', $_POST['message'])) {
die("Spam-Inhalt erkannt");
}
️ 12. Verwendung von Akismet (WordPress-Empfehlung)
-
Akismet ist das Spam-Filtersystem von WordPress.
-
Besonders wirksam gegen Kommentar- + Formular-Spam.
-
Funktioniert integriert mit Gravity Forms, Contact Form 7.
13. Jetpack Anti-Spam (Premium)
-
Bietet zusätzlich zur Formularfeldanalyse IP-basierte Daten
-
Empfohlen für WordPress-basierte Unternehmensseiten
Zusätzliche Sicherheitsmaßnahmen
-
Veröffentlichen Sie alle Ihre Formulare über HTTPS
-
Erstellen Sie eine "Blacklist" für häufige Spam-Daten (Beispiel-E-Mails, Namen)
-
Zeigen Sie Ihre Formulare nur angemeldeten Benutzern an (wie das WordPress-Kommentarformular)
Fazit: Ein mehrschichtiger Ansatz ist für die Formularsicherheit unerlässlich
Um ein Webformular zu schützen, reicht reCAPTCHA allein nicht aus. Insbesondere in verbreiteten Systemen wie WordPress können Bots Formulare mithilfe von Plugin-Schwachstellen angreifen. Daher ist es notwendig, Methoden wie Honeypot, Zeitkontrolle, Inhaltsanalyse und IP-Beschränkung gemeinsam zu verwenden.
Für eine Struktur, die Spam zu 95 % stoppt, ohne die Benutzererfahrung zu beeinträchtigen, wird empfohlen, mindestens 4-5 der Methoden in dieser Liste zusammen zu verwenden.