Protejați formularele WordPress cu SilentShield
Modulul oficial „SilentShield – Captcha & Anti-Spam” adaugă scriptul și verifică fiecare trimitere pe serverul dumneavoastră — fără cod propriu. Acest ghid enumeră doar ceea ce am testat noi înșine cu modulul.
Vedeți modulul în directorul WordPress
Cerințe
- WordPress 5.2 sau mai nou și PHP 7.4 sau mai nou (conform informațiilor modulului din directorul WordPress).
- Site-ul dumneavoastră rulează prin https. Fără un context securizat, browserul nu oferă funcții Web Crypto, nu se creează niciun nonce, iar formularele protejate nu pot fi trimise.
- Un cont SilentShield cu o cheie pentru domeniul dumneavoastră. Subdomeniile precum www. sau staging. sunt incluse.
Ce formulare pot fi protejate
Testat pe 07.10.2026 cu modulul 2.15.14 și WordPress 7.1.2: un om trece și este confirmat pe server, o trimitere fără browser este respinsă.
| Formular | Versiune testată | Stare |
|---|---|---|
| Contact Form 7 | 6.2 | Funcționează |
| Fluent Forms | 6.2.15 | Funcționează |
| Comentarii WordPress | 7.1.2 | Funcționează |
| Autentificare WordPress | 7.1.2 | Funcționează |
| Înregistrare WordPress | 7.1.2 | Funcționează |
| Finalizare comandă WooCommerce (clasică) | 11.1.2 | Funcționează |
| WPForms | 2.0.2.2 | Funcționează |
| Finalizare comandă WooCommerce (bloc) | 11.1.2 | Funcționează |
| Elementor Forms | 4.3.4 (Pro 4.2.1) | Funcționează |
| Avada Forms | 7.11.7 | Funcționează |
Instalare
- În WordPress, deschideți „Module → Adaugă nou” și căutați „SilentShield”.
- Instalați și activați „SilentShield – Captcha & Anti-Spam for WordPress”.
- În meniu apare acum intrarea „SilentShield”.
Introduceți cheia și activați formularele
- Creați în panoul de control SilentShield o cheie pentru domeniul dumneavoastră și copiați-o.
- În WordPress, deschideți „SilentShield → API / SilentShield”, lipiți cheia la „API Key” și faceți clic pe „Validate”.
- Activați „Activate API” și faceți clic pe „Save”.
- Deschideți „SilentShield → Forms” și activați protecția pentru fiecare modul de formulare marcat ca „Funcționează” în tabelul de mai sus.
Modulul folosește cheia site-ului atât în browser, cât și pentru verificarea pe serverul dumneavoastră. Pentru aceasta nu este necesară o cheie de server.
Verificați funcționarea
O trimitere reală
Deschideți pagina cu formularul într-o fereastră privată, completați-l manual și trimiteți-l. Vedeți confirmarea obișnuită a formularului, iar trimiterea apare cu verdictul ei în panoul de control SilentShield.
O trimitere respinsă
Trimiteți același lucru fără browser, de exemplu un comentariu prin curl la un articol cu comentarii deschise. Înlocuiți adresa și ID-ul articolului:
curl -i -X POST https://example.com/wp-comments-post.php \
-d "comment_post_ID=1&author=Test&[email protected]&comment=Test"Este de așteptat o respingere cu mesajul modulului, pe un site în limba engleză „Captcha not correct: Behavior check”. Cu Contact Form 7, formularul afișează „Behavior check”.
Depanare
- Nu se întâmplă nimic la clic pe „Trimite”.
- Pagina este servită prin http în loc de https? Consola browserului afișează atunci avertismentul „[SilentShield] Web Crypto fehlt im Worker …” (mesajul este în limba germană). Serviți pagina prin https.
- Contact Form 7 raportează „There was an error trying to send your message”.
- Verificarea a trecut; a eșuat trimiterea e-mailului de către WordPress. Verificați setările de e-mail (de exemplu SMTP), nu protecția împotriva boților.
- Vizitatorii reali primesc „Behavior check”.
- Cea mai frecventă cauză este un modul de optimizare care întârzie sau combină JavaScript — vedeți nota de mai jos. Verificați și dacă cheia aparține domeniului paginii.
- Un formular WPForms nu se trimite sau finalizarea comenzii bazată pe blocuri respinge fiecare comandă.
- Actualizați pluginul SilentShield la versiunea 2.15.14 sau mai nouă. Am măsurat ambele probleme cu versiunea 2.15.12; cu 2.15.14 nu mai apar.
- Doriți să vedeți ce face scriptul.
- Adăugați ?silentshield-debug la adresa paginii. Consola browserului afișează atunci fiecare pas al verificării.
Excludeți SilentShield din optimizatoarele JavaScript
Pluginurile de cache și viteză (WP Rocket, Perfmatters, LiteSpeed, Autoptimize și altele) pot amâna JavaScript până la prima interacțiune a vizitatorului și pot combina fișierele într-un singur pachet. Ambele strică SilentShield: widgetul pornește abia la un clic, lipsesc semnalele de comportament de la încărcarea paginii (mișcarea mouse-ului, ritmul de tastare, temporizarea), iar protecția lucrează cu o fracțiune din ce îi trebuie. Scanările de formulare nu rulează deloc. Adăugați aceste tipare în listele de excludere ale optimizatorului — atât pentru „amână JavaScript”, cât și pentru „combină JavaScript”:
client.js
behavior-captcha
silentshieldPentru verificare: deschideți o pagină cu formular și rulați performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() în consola browserului FĂRĂ să dați clic înainte. Un rezultat gol înseamnă că SilentShield nu s-a încărcat încă — lipsește o excludere.
Limitări
- Sunt protejate doar modulele de formulare pe care le activați la „SilentShield → Forms”.
- Enumerăm doar versiunile testate. Modulul detectează și alte module de formulare; dacă funcționează cu SilentShield nu am testat.
- Modulul are verificări proprii (precum honeypot și măsurarea timpului) și afișează pentru ele mesaje proprii, precum „JavaScript check”.
- SilentShield protejează formularele împotriva boților. Nu înlocuiește un firewall pentru aplicații web sau protecția DDoS.
Funcționare
- Actualizați modulul prin WordPress, ca pe oricare altul. Scriptul din browser vine întotdeauna de la noi, în versiunea curentă.
- Fiecare trimitere se contorizează de două ori în cotă: o dată pentru raportul din browser, o dată pentru verificarea pe serverul dumneavoastră.
- Verdictele și trimiterile respinse le vedeți în panoul de control SilentShield.
Fără modul: integrare proprie
Pentru formulare proprii sau fără modul, adăugați singur scriptul și verificați fiecare trimitere pe serverul dumneavoastră. Fără această verificare scriptul nu protejează: nu oprește o cerere trimisă direct.
1. Adăugați scriptul
Adăugați acest cod în fișierul functions.php al temei dumneavoastră sau folosiți un plugin precum „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. Verificare pe server
Adăugați verificarea nonce-ului la handler-ul formularului dumneavoastră. Pentru formulare personalizate, adaugă acest lucru în funcția de procesare:
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));
}
}Stocarea cheii API
Adăugați cheia dumneavoastră API în wp-config.php pentru securitate:
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');Observarea agenților AI
Dincolo de protecția formularelor, WordPress poate înregistra și ce crawlere AI (GPTBot, ClaudeBot, PerplexityBot, …) vă citesc site-ul — astăzi printr-un mic fișier must-use plugin; o viitoare actualizare a pluginului îl va integra.