SilentShield

Chraňte formuláře ve WordPressu pomocí SilentShield

Oficiální plugin „SilentShield – Captcha & Anti-Spam“ vloží skript a ověří každé odeslání na vašem serveru — bez vlastního kódu. Tento návod uvádí jen to, co jsme s pluginem sami vyzkoušeli.

Zobrazit plugin v adresáři WordPressu

Požadavky

  • WordPress 5.2 nebo novější a PHP 7.4 nebo novější (podle údajů pluginu v adresáři WordPressu).
  • Váš web běží přes https. Bez zabezpečeného kontextu prohlížeč neposkytuje funkce Web Crypto, nevznikne žádný nonce a chráněné formuláře nelze odeslat.
  • Účet SilentShield s klíčem pro vaši doménu. Subdomény jako www. nebo staging. jsou zahrnuty.

Které formuláře lze chránit

Ověřeno dne 7. 10. 2026 s pluginem 2.15.14 a WordPressem 7.1.2: člověk projde a je potvrzen na serveru, odeslání bez prohlížeče je odmítnuto.

FormulářOvěřená verzeStav
Contact Form 76.2Funguje
Fluent Forms6.2.15Funguje
Komentáře WordPressu7.1.2Funguje
Přihlášení do WordPressu7.1.2Funguje
Registrace ve WordPressu7.1.2Funguje
Pokladna WooCommerce (klasická)11.1.2Funguje
WPForms2.0.2.2Funguje
Pokladna WooCommerce (bloková pokladna)11.1.2Funguje
Elementor Forms4.3.4 (Pro 4.2.1)Funguje
Avada Forms7.11.7Funguje

Instalace

  1. Ve WordPressu otevřete „Pluginy → Instalace pluginů“ a vyhledejte „SilentShield“.
  2. Nainstalujte a aktivujte „SilentShield – Captcha & Anti-Spam for WordPress“.
  3. V menu se objeví položka „SilentShield“.

Zadejte klíč a zapněte formuláře

  1. V dashboardu SilentShield vytvořte klíč pro vaši doménu a zkopírujte ho.
  2. Ve WordPressu otevřete „SilentShield → API / SilentShield“, vložte klíč do pole „API Key“ a klikněte na „Validate“.
  3. Zapněte „Activate API“ a klikněte na „Save“.
  4. Otevřete „SilentShield → Forms“ a zapněte ochranu pro každý plugin formulářů, který je v tabulce výše uveden jako „Funguje“.

Plugin používá klíč webu jak v prohlížeči, tak pro ověření na vašem serveru. Serverový klíč k tomu není potřeba.

Serverový klíč pro plugin f12-security

Plugin f12-security může volitelně vyměňovat s SilentShield upozornění na boty: hlásí otisky známých botů a stahuje podepsaný seznam pro Váš účet. Tato volání provádí Váš server, nikoli prohlížeč Vašich návštěvníků. K tomu plugin potřebuje serverový klíč Vaší domény — nikoli běžný klíč webu, který je vidět ve zdrojovém kódu Vašich stránek.

  1. V dashboardu SilentShield otevřete „API klíče“ a klíč Vaší domény.
  2. Přejděte na stránku „Zabezpečení“ a v sekci „Serverový klíč“ klikněte na „Vygenerovat serverový klíč“.
  3. Hodnotu ihned zkopírujte. Zobrazí se pouze jednou a žádnou kopii neuchováváme.
  4. Vložte ji do f12-security do pole označeného jako serverový klíč a uložte.

Serverový klíč patří pouze do nastavení Vašeho serveru, nikdy do stránky ani skriptu určeného návštěvníkům. Pokud jej ztratíte, vygenerujte v dashboardu nový; starý tím přestane platit.

Ověřte funkčnost

Skutečné odeslání

Otevřete stránku s formulářem v anonymním okně, vyplňte ho ručně a odešlete. Uvidíte běžné potvrzení vašeho formuláře a v dashboardu SilentShield se odeslání objeví s výsledkem hodnocení.

Odmítnuté odeslání

Odešlete totéž bez prohlížeče, například komentář přes curl k příspěvku s otevřenými komentáři. Nahraďte adresu a ID příspěvku:

Terminalbash
curl -i -X POST https://example.com/wp-comments-post.php \
  -d "comment_post_ID=1&author=Test&[email protected]&comment=Test"

Očekávejte odmítnutí se zprávou pluginu, na anglickojazyčném webu „Captcha not correct: Behavior check“. U Contact Form 7 formulář zobrazí „Behavior check“.

Řešení problémů

Po kliknutí na „Odeslat“ se nic nestane.
Běží stránka přes http místo https? Konzole prohlížeče pak zobrazí varování „[SilentShield] Web Crypto fehlt im Worker …“ (zpráva je v němčině). Poskytujte stránku přes https.
Contact Form 7 hlásí „There was an error trying to send your message“.
Ověření prošlo; selhalo odeslání e-mailu z WordPressu. Zkontrolujte nastavení pošty (například SMTP), ne ochranu proti botům.
Skuteční návštěvníci dostávají „Behavior check“.
Nejčastější příčinou je optimalizační plugin, který odkládá nebo slučuje JavaScript — viz poznámka níže. Zkontrolujte také, zda klíč patří k doméně stránky.
Formulář WPForms se neodešle nebo bloková pokladna odmítá každou objednávku.
Aktualizujte plugin SilentShield na verzi 2.15.14 nebo novější. Oba problémy jsme naměřili u verze 2.15.12; u verze 2.15.14 se již neobjevují.
Chcete vidět, co skript dělá.
Připojte ?silentshield-debug k adrese stránky. Konzole prohlížeče pak zobrazí každý krok ověření.

Vyjměte SilentShield z optimalizátorů JavaScriptu

Cachovací a zrychlovací pluginy (WP Rocket, Perfmatters, LiteSpeed, Autoptimize a další) umí odkládat JavaScript až na první interakci návštěvníka a slučovat soubory do jednoho balíku. Obojí rozbíjí SilentShield: widget se pak spustí až po kliknutí, chybí signály chování od načtení stránky (pohyb myši, rytmus psaní, časování) a ochrana pracuje se zlomkem toho, co potřebuje. Skenování formulářů neběží vůbec. Přidejte tyto vzory do seznamů výjimek svého optimalizátoru — pro „odložit JavaScript“ i „sloučit JavaScript“:

Vzory výjimektext
client.js
behavior-captcha
silentshield

Ověření: otevřete stránku s formulářem a spusťte performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() v konzoli prohlížeče BEZ předchozího kliknutí. Prázdný výsledek znamená, že se SilentShield ještě nenačetl — chybí výjimka.

Omezení

  • Chráněny jsou jen pluginy formulářů, které zapnete v „SilentShield → Forms“.
  • Uvádíme pouze ověřené verze. Plugin rozpozná i další pluginy formulářů; zda fungují se SilentShield, jsme neověřovali.
  • Plugin má vlastní kontroly (například honeypot a měření času) a zobrazuje pro ně vlastní zprávy, například „JavaScript check“.
  • SilentShield chrání formuláře před boty. Nenahrazuje firewall webových aplikací ani ochranu proti DDoS.

Provoz

  • Plugin aktualizujete přes WordPress jako každý jiný. Skript v prohlížeči přichází vždy od nás v aktuální verzi.
  • Každé odeslání se do kvóty počítá dvakrát: jednou za hlášení z prohlížeče, jednou za ověření na vašem serveru.
  • Výsledky hodnocení a odmítnutá odeslání vidíte v dashboardu SilentShield.

Zobrazit ceny a kvóty

Bez pluginu: vlastní integrace

Pro vlastní formuláře nebo bez pluginu vložte skript sami a ověřujte každé odeslání na vašem serveru. Bez tohoto ověření skript nechrání: přímo odeslaný požadavek nezastaví.

1. Přidejte skript

Přidejte tento kód do souboru functions.php vaší šablony nebo použijte plugin jako „Insert Headers and Footers":

functions.phpphp
// 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. Ověření na straně serveru

Přidejte ověření nonce do handleru formuláře. Pro vlastní formuláře přidejte toto do své zpracovávací funkce:

PHPphp
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žení API klíče

Pro bezpečnost přidejte svůj API klíč do wp-config.php:

wp-config.phpphp
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');

Sledování AI agentů

Kromě ochrany formulářů může WordPress také zaznamenávat, které AI crawlery (GPTBot, ClaudeBot, PerplexityBot, …) čtou váš web — dnes pomocí malého souboru must-use pluginu; nadcházející aktualizace pluginu to přinese vestavěné.

Více informací: Sledování AI agentů →