Chráňte formuláre vo WordPresse pomocou SilentShield
Oficiálny plugin „SilentShield – Captcha & Anti-Spam“ vloží skript a overí každé odoslanie na vašom serveri — bez vlastného kódu. Tento návod uvádza len to, čo sme s pluginom sami overili.
Zobraziť plugin v adresári WordPressu
Požiadavky
- WordPress 5.2 alebo novší a PHP 7.4 alebo novšie (podľa údajov pluginu v adresári WordPressu).
- Vaša webová stránka beží cez https. Bez zabezpečeného kontextu prehliadač neposkytuje funkcie Web Crypto, nevznikne žiadny nonce a chránené formuláre nemožno odoslať.
- Účet SilentShield s kľúčom pre vašu doménu. Subdomény ako www. alebo staging. sú zahrnuté.
Ktoré formuláre možno chrániť
Overené dňa 7. 10. 2026 s pluginom 2.15.14 a WordPressom 7.1.2: človek prejde a je potvrdený na serveri, odoslanie bez prehliadača je odmietnuté.
| Formulár | Overená verzia | Stav |
|---|---|---|
| Contact Form 7 | 6.2 | Funguje |
| Fluent Forms | 6.2.15 | Funguje |
| Komentáre WordPressu | 7.1.2 | Funguje |
| Prihlásenie do WordPressu | 7.1.2 | Funguje |
| Registrácia vo WordPresse | 7.1.2 | Funguje |
| Pokladňa WooCommerce (klasická) | 11.1.2 | Funguje |
| WPForms | 2.0.2.2 | Funguje |
| Pokladňa WooCommerce (bloková pokladňa) | 11.1.2 | Funguje |
| Elementor Forms | 4.3.4 (Pro 4.2.1) | Funguje |
| Avada Forms | 7.11.7 | Funguje |
Inštalácia
- Vo WordPresse otvorte „Plugins → Add New“ a vyhľadajte „SilentShield“.
- Nainštalujte a aktivujte „SilentShield – Captcha & Anti-Spam for WordPress“.
- V menu sa zobrazí položka „SilentShield“.
Zadajte kľúč a zapnite formuláre
- V dashboarde SilentShield vytvorte kľúč pre vašu doménu a skopírujte ho.
- Vo WordPresse otvorte „SilentShield → API / SilentShield“, vložte kľúč do poľa „API Key“ a kliknite na „Validate“.
- Zapnite „Activate API“ a kliknite na „Save“.
- Otvorte „SilentShield → Forms“ a zapnite ochranu pre každý plugin formulárov, ktorý je v tabuľke vyššie uvedený ako „Funguje“.
Plugin používa kľúč webu v prehliadači aj na overenie na vašom serveri. Serverový kľúč na to nie je potrebný.
Serverový kľúč pre doplnok f12-security
Doplnok f12-security môže voliteľne vymieňať s SilentShield informácie o botoch: hlási odtlačky známych botov a sťahuje podpísaný zoznam pre Váš účet. Tieto volania uskutočňuje Váš server, nie prehliadač Vašich návštevníkov. Doplnok na to potrebuje serverový kľúč Vašej domény, nie bežný kľúč webu, ktorý sa nachádza v zdrojovom kóde Vašich stránok.
- V paneli SilentShield otvorte „Kľúče API“ a kľúč Vašej domény.
- Prejdite na stránku „Zabezpečenie“ a v sekcii „Serverový kľúč“ kliknite na „Vytvoriť serverový kľúč“.
- Hodnotu ihneď skopírujte. Zobrazí sa iba raz a kópiu neuchovávame.
- Zadajte ju v doplnku f12-security do poľa označeného ako serverový kľúč a uložte.
Serverový kľúč patrí len do nastavení Vášho servera, nikdy do stránky ani skriptu poskytovaného návštevníkom. Ak ste ho stratili, vytvorte v paneli nový; pôvodný tým prestane platiť.
Overte funkčnosť
Skutočné odoslanie
Otvorte stránku s formulárom v súkromnom okne, vyplňte ho ručne a odošlite. Uvidíte bežné potvrdenie vášho formulára a v dashboarde SilentShield sa odoslanie zobrazí s výsledkom hodnotenia.
Odmietnuté odoslanie
Odošlite to isté bez prehliadača, napríklad komentár cez curl k príspevku s otvorenými komentármi. Nahraďte adresu a ID príspevku:
curl -i -X POST https://example.com/wp-comments-post.php \
-d "comment_post_ID=1&author=Test&[email protected]&comment=Test"Očakávajte odmietnutie so správou pluginu, na anglickojazyčnej stránke „Captcha not correct: Behavior check“. Pri Contact Form 7 formulár zobrazí „Behavior check“.
Riešenie problémov
- Po kliknutí na „Odoslať“ sa nič nestane.
- Beží stránka cez http namiesto https? Konzola prehliadača potom zobrazí varovanie „[SilentShield] Web Crypto fehlt im Worker …“ (správa je v nemčine). Poskytujte stránku cez https.
- Contact Form 7 hlási „There was an error trying to send your message“.
- Overenie prešlo; zlyhalo odoslanie e-mailu z WordPressu. Skontrolujte nastavenia pošty (napríklad SMTP), nie ochranu proti botom.
- Skutoční návštevníci dostávajú „Behavior check“.
- Najčastejšou príčinou je optimalizačný plugin, ktorý odkladá alebo zlučuje JavaScript — pozrite poznámku nižšie. Skontrolujte tiež, či kľúč patrí k doméne stránky.
- Formulár WPForms sa neodošle alebo bloková pokladňa odmieta každú objednávku.
- Aktualizujte plugin SilentShield na verziu 2.15.14 alebo novšiu. Oba problémy sme namerali pri verzii 2.15.12; pri verzii 2.15.14 sa už nevyskytujú.
- Chcete vidieť, čo skript robí.
- Pripojte ?silentshield-debug k adrese stránky. Konzola prehliadača potom zobrazí každý krok overenia.
Vyňatie SilentShield z optimalizátorov JavaScriptu
Cachovacie a zrýchľovacie pluginy (WP Rocket, Perfmatters, LiteSpeed, Autoptimize a ďalšie) vedia odkladať JavaScript až na prvú interakciu návštevníka a zlučovať súbory do jedného balíka. Oboje rozbíja SilentShield: widget sa spustí až po kliknutí, chýbajú signály správania od načítania stránky (pohyb myši, rytmus písania, časovanie) a ochrana pracuje so zlomkom toho, čo potrebuje. Skenovanie formulárov nebeží vôbec. Pridajte tieto vzory do zoznamov výnimiek svojho optimalizátora — pre „odložiť JavaScript“ aj „zlúčiť JavaScript“:
client.js
behavior-captcha
silentshieldOverenie: otvorte stránku s formulárom a spustite performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() v konzole prehliadača BEZ predchádzajúceho kliknutia. Prázdny výsledok znamená, že SilentShield sa ešte nenačítal — chýba výnimka.
Obmedzenia
- Chránené sú len pluginy formulárov, ktoré zapnete v „SilentShield → Forms“.
- Uvádzame iba overené verzie. Plugin rozpozná aj ďalšie pluginy formulárov; či fungujú so SilentShield, sme neoverovali.
- Plugin má vlastné kontroly (napríklad honeypot a meranie času) a zobrazuje pre ne vlastné správy, napríklad „JavaScript check“.
- SilentShield chráni formuláre pred botmi. Nenahrádza firewall webových aplikácií ani ochranu proti DDoS.
Prevádzka
- Plugin aktualizujete cez WordPress ako každý iný. Skript v prehliadači prichádza vždy od nás v aktuálnej verzii.
- Každé odoslanie sa do kvóty počíta dvakrát: raz za hlásenie z prehliadača, raz za overenie na vašom serveri.
- Ak SilentShield návštevníkovi navyše zadá úlohu, pribudnú za ňu až 2 ďalšie požiadavky. Odoslanie, ktoré server navyše overuje, tak stojí až 2 požiadavky – s úlohou až 4.
- Výsledky hodnotenia a odmietnuté odoslania vidíte v dashboarde SilentShield.
Bez pluginu: vlastná integrácia
Pre vlastné formuláre alebo bez pluginu vložte skript sami a overujte každé odoslanie na vašom serveri. Bez tohto overenia skript nechráni: priamo odoslanú požiadavku nezastaví.
1. Pridajte skript
Pridajte tento kód do súboru functions.php vašej témy alebo použite plugin ako „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. Overenie na strane servera
Pridajte overenie nonce do handlera vášho formulára. Pre vlastné formuláre pridajte toto do vašej spracovateľskej funkcie:
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));
}
}Uloženie API kľúča
Pridajte svoj API kľúč do wp-config.php pre bezpečnosť:
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');Sledovanie AI agentov
Okrem ochrany formulárov môže WordPress zaznamenávať aj to, ktoré AI crawlery (GPTBot, ClaudeBot, PerplexityBot, …) čítajú váš web — dnes pomocou malého súboru must-use pluginu; nadchádzajúca aktualizácia pluginu to prinesie vstavané.