WordPress-Formulare mit SilentShield schützen
Das offizielle Plugin „SilentShield – Captcha & Anti-Spam“ bindet das Skript ein und prüft jede Absendung auf Ihrem Server — ohne eigenen Code. Diese Anleitung nennt nur, was wir mit dem Plugin selbst geprüft haben.
Plugin im WordPress-Verzeichnis ansehen
Voraussetzungen
- WordPress ab 5.2 und PHP ab 7.4 (Angabe des Plugins im WordPress-Verzeichnis).
- Ihre Website läuft über https. Ohne sicheren Kontext stellt der Browser keine Web-Crypto-Funktionen bereit, es entsteht kein Nonce, und geschützte Formulare lassen sich nicht absenden.
- Ein SilentShield-Konto mit einem Schlüssel für Ihre Domain. Subdomains wie www. oder staging. gehören dazu.
Welche Formulare geschützt werden können
Geprüft am 7.10.2026 mit Plugin 2.15.14 und WordPress 7.1.2: Ein Mensch kommt durch und wird auf dem Server bestätigt, eine Absendung ohne Browser wird abgewiesen.
| Formular | Geprüfte Version | Stand |
|---|---|---|
| Contact Form 7 | 6.2 | Funktioniert |
| Fluent Forms | 6.2.15 | Funktioniert |
| WordPress-Kommentare | 7.1.2 | Funktioniert |
| WordPress-Anmeldung | 7.1.2 | Funktioniert |
| WordPress-Registrierung | 7.1.2 | Funktioniert |
| WooCommerce-Kasse (klassisch) | 11.1.2 | Funktioniert |
| WPForms | 2.0.2.2 | Funktioniert |
| WooCommerce-Kasse (Block-Checkout) | 11.1.2 | Funktioniert |
| Elementor Forms | 4.3.4 (Pro 4.2.1) | Funktioniert |
| Avada Forms | 7.11.7 | Funktioniert |
Installation
- Öffnen Sie in WordPress „Plugins → Installieren“ und suchen Sie nach „SilentShield“.
- Installieren und aktivieren Sie „SilentShield – Captcha & Anti-Spam for WordPress“.
- Im Menü erscheint der Eintrag „SilentShield“.
Schlüssel eintragen und Formulare einschalten
- Legen Sie im SilentShield-Dashboard einen Schlüssel für Ihre Domain an und kopieren Sie ihn.
- Öffnen Sie in WordPress „SilentShield → API / SilentShield“, fügen Sie den Schlüssel unter „API Key“ ein und klicken Sie auf „Validate“.
- Schalten Sie „Activate API“ ein und speichern Sie mit „Save“.
- Öffnen Sie „SilentShield → Forms“ und schalten Sie den Schutz für jedes Formular-Plugin ein, das in der Tabelle oben als „Funktioniert“ steht.
Das Plugin verwendet den Website-Schlüssel sowohl im Browser als auch für die Prüfung auf Ihrem Server. Einen Serverschlüssel braucht es dafür nicht.
Serverschlüssel für das Plugin f12-security
Das Plugin f12-security kann optional Hinweise auf Bots mit SilentShield austauschen: Es meldet Fingerabdrücke bekannter Bots und holt eine signierte Liste für Ihr Konto. Diese Aufrufe macht Ihr Server, nicht der Browser Ihrer Besucher. Dafür braucht das Plugin den Serverschlüssel Ihrer Domain — nicht den normalen Website-Schlüssel, der im Quelltext Ihrer Seiten steht.
- Öffnen Sie im SilentShield-Dashboard „API-Schlüssel“ und den Schlüssel Ihrer Domain.
- Wechseln Sie zur Seite „Sicherheit“ und klicken Sie im Abschnitt „Serverschlüssel“ auf „Serverschlüssel erzeugen“.
- Kopieren Sie den Wert sofort. Er wird nur dieses eine Mal angezeigt, wir bewahren keine Kopie auf.
- Tragen Sie ihn in f12-security an der Stelle ein, die als Serverschlüssel beschriftet ist, und speichern Sie.
Der Serverschlüssel gehört nur in die Einstellungen Ihres Servers, nie in eine Seite oder ein Skript für Besucher. Haben Sie ihn verloren, erzeugen Sie im Dashboard einen neuen; der alte wird dadurch ungültig.
Funktion prüfen
Eine echte Absendung
Öffnen Sie die Seite mit dem Formular in einem privaten Fenster, füllen Sie es von Hand aus und senden Sie es ab. Sie sehen die normale Bestätigung Ihres Formulars, und im SilentShield-Dashboard erscheint die Absendung mit ihrem Urteil.
Eine abgewiesene Absendung
Senden Sie dasselbe ohne Browser, etwa einen Kommentar per curl an einen Beitrag mit offenen Kommentaren. Ersetzen Sie die Adresse und die Beitrags-ID:
curl -i -X POST https://example.com/wp-comments-post.php \
-d "comment_post_ID=1&author=Test&[email protected]&comment=Test"Erwartet ist eine Ablehnung mit der Meldung des Plugins, auf einer englischsprachigen Seite „Captcha not correct: Behavior check“. Bei Contact Form 7 steht im Formular „Behavior check“.
Fehlerdiagnose
- Beim Klick auf „Senden“ passiert nichts.
- Läuft die Seite über http statt https? Die Browser-Konsole zeigt dann die Warnung „[SilentShield] Web Crypto fehlt im Worker …“. Liefern Sie die Seite über https aus.
- Contact Form 7 meldet „There was an error trying to send your message“.
- Die Prüfung ist bestanden, gescheitert ist der Mailversand von WordPress. Prüfen Sie die Mail-Einstellungen (etwa SMTP), nicht den Botschutz.
- Echte Besucher bekommen „Behavior check“.
- Häufigste Ursache ist ein Optimierungs-Plugin, das JavaScript verzögert oder zusammenfasst — siehe den Hinweis unten. Prüfen Sie außerdem, ob der Schlüssel zur Domain der Seite gehört.
- Ein WPForms-Formular schickt nicht ab, oder der Block-Checkout lehnt jede Bestellung ab.
- Aktualisieren Sie das SilentShield-Plugin auf Version 2.15.14 oder neuer. Wir haben beide Probleme mit Version 2.15.12 gemessen; mit 2.15.14 treten sie nicht mehr auf.
- Sie möchten sehen, was das Skript tut.
- Hängen Sie ?silentshield-debug an die Adresse der Seite. Die Browser-Konsole zeigt dann jeden Schritt der Prüfung.
SilentShield von JavaScript-Optimierern ausnehmen
Caching- und Performance-Plugins (WP Rocket, Perfmatters, LiteSpeed, Autoptimize und andere) können JavaScript bis zur ersten Interaktion des Besuchers verzögern und Dateien zu einem Bündel zusammenfassen. Beides bricht SilentShield: Das Widget startet dann erst, wenn jemand klickt — die Verhaltenssignale ab dem Seitenaufruf (Mausbewegung, Tipprhythmus, Zeitverläufe) fehlen, und der Schutz arbeitet mit einem Bruchteil dessen, was er braucht. Formular-Scans laufen gar nicht. Tragen Sie diese Muster in die Ausschlusslisten Ihres Optimierers ein — für „JavaScript verzögern" UND „JavaScript zusammenfassen":
client.js
behavior-captcha
silentshieldZum Prüfen: Öffnen Sie eine Seite mit Formular und führen Sie performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() in der Browser-Konsole aus, OHNE vorher zu klicken. Ein leeres Ergebnis heißt, SilentShield ist noch nicht geladen — dann fehlt ein Ausschluss.
Grenzen
- Geschützt sind nur die Formular-Plugins, die Sie unter „SilentShield → Forms“ einschalten.
- Wir nennen nur geprüfte Versionen. Das Plugin erkennt weitere Formular-Plugins; ob sie mit SilentShield funktionieren, haben wir nicht geprüft.
- Das Plugin bringt eigene Prüfungen mit (etwa Honeypot und Zeitmessung) und zeigt dafür eigene Meldungen wie „JavaScript check“.
- SilentShield schützt Formulare vor Bots. Es ersetzt keine Web Application Firewall und keinen DDoS-Schutz.
Betrieb
- Das Plugin aktualisieren Sie wie jedes andere über WordPress. Das Skript im Browser kommt immer in der aktuellen Fassung von uns.
- Jede Absendung zählt doppelt zum Kontingent: einmal die Meldung aus dem Browser, einmal die Prüfung auf Ihrem Server.
- Urteile und abgewiesene Absendungen sehen Sie im SilentShield-Dashboard.
Preise und Kontingente ansehen
Ohne Plugin: eigener Einbau
Für eigene Formulare oder ohne das Plugin binden Sie das Skript selbst ein und prüfen jede Absendung auf Ihrem Server. Ohne diese Prüfung schützt das Skript nicht: Eine direkt gesendete Anfrage hält es nicht auf.
1. Script hinzufügen
Fügen Sie diesen Code in die functions.php Ihres Themes ein oder verwenden Sie ein Plugin wie 'Insert Headers and Footers':
// functions.php
function silentshield_enqueue() {
wp_enqueue_script(
'silentshield',
'https://api.silentshield.io/client.js?k=YOUR_API_KEY',
array(),
null,
true
);
}
add_action('wp_enqueue_scripts', 'silentshield_enqueue');2. Server-seitige Verifizierung
Fügen Sie die Nonce-Verifizierung zu Ihrem Formular-Handler hinzu. Für benutzerdefinierte Formulare fügen Sie dies in Ihre Verarbeitungsfunktion ein:
function verify_silentshield_nonce() {
$nonce = sanitize_text_field($_POST['behavior_nonce'] ?? '');
if (empty($nonce)) {
wp_die('Missing verification', 'Error', array('response' => 422));
}
$response = wp_remote_post('https://api.silentshield.io/api/v1/captcha/verify-nonce', array(
'headers' => array(
'Content-Type' => 'application/json',
'X-Api-Key' => SILENTSHIELD_API_KEY,
),
'body' => wp_json_encode(array('nonce' => $nonce)),
'timeout' => 5,
));
if (is_wp_error($response)) {
return; // fail open
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (($body['ok'] ?? false) !== true || ($body['verdict'] ?? '') !== 'human') {
wp_die('Bot detected', 'Forbidden', array('response' => 403));
}
}API-Key speichern
Fügen Sie Ihren API-Key zur wp-config.php hinzu für mehr Sicherheit:
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');KI-Agenten beobachten
Über den Formularschutz hinaus kann WordPress auch erfassen, welche KI-Crawler (GPTBot, ClaudeBot, PerplexityBot, …) Ihre Website lesen — heute über eine kleine Must-Use-Plugin-Datei; ein kommendes Plugin-Update bringt das eingebaut mit.