SilentShield

Защитете формулярите в WordPress със SilentShield

Официалният плъгин „SilentShield – Captcha & Anti-Spam“ вгражда скрипта и проверява всяко изпращане на Вашия сървър — без собствен код. Това ръководство посочва само това, което сме проверили с плъгина сами.

Вижте плъгина в директорията на WordPress

Изисквания

  • WordPress 5.2 или по-нова версия и PHP 7.4 или по-нова версия (според данните на плъгина в директорията на WordPress).
  • Вашият уебсайт работи през https. Без защитен контекст браузърът не предоставя функции на Web Crypto, не се създава nonce и защитените формуляри не могат да бъдат изпратени.
  • Акаунт в SilentShield с ключ за Вашия домейн. Поддомейни като www. или staging. са включени.

Кои формуляри могат да бъдат защитени

Проверено на 7.10.2026 г. с плъгин 2.15.14 и WordPress 7.1.2: човек преминава и е потвърден на сървъра, изпращане без браузър се отхвърля.

ФормулярПроверена версияСъстояние
Contact Form 76.2Работи
Fluent Forms6.2.15Работи
Коментари в WordPress7.1.2Работи
Вход в WordPress7.1.2Работи
Регистрация в WordPress7.1.2Работи
Плащане в WooCommerce (класическо)11.1.2Работи
WPForms2.0.2.2Работи
Плащане в WooCommerce (блоково плащане)11.1.2Работи
Elementor Forms4.3.4 (Pro 4.2.1)Работи
Avada Forms7.11.7Работи

Инсталиране

  1. В WordPress отворете „Plugins → Add New“ и потърсете „SilentShield“.
  2. Инсталирайте и активирайте „SilentShield – Captcha & Anti-Spam for WordPress“.
  3. В менюто се появява елементът „SilentShield“.

Въведете ключа и включете формулярите

  1. Създайте ключ за Вашия домейн в таблото на SilentShield и го копирайте.
  2. В WordPress отворете „SilentShield → API / SilentShield“, поставете ключа в „API Key“ и щракнете върху „Validate“.
  3. Включете „Activate API“ и щракнете върху „Save“.
  4. Отворете „SilentShield → Forms“ и включете защитата за всеки плъгин за формуляри, който в таблицата по-горе е отбелязан като „Работи“.

Плъгинът използва ключа на сайта както в браузъра, така и за проверката на Вашия сървър. За това не е нужен сървърен ключ.

Сървърен ключ за приставката f12-security

Приставката f12-security може по желание да обменя сигнали за ботове със SilentShield: тя съобщава отпечатъци на известни ботове и изтегля подписан списък за Вашия акаунт. Тези заявки се изпращат от Вашия сървър, а не от браузъра на посетителите. За целта приставката се нуждае от сървърния ключ на Вашия домейн — не от обикновения ключ на уебсайта, който се вижда в изходния код на Вашите страници.

  1. В таблото на SilentShield отворете „API ключове“ и ключа на Вашия домейн.
  2. Преминете към страницата „Сигурност“ и в раздела „Сървърен ключ“ щракнете върху „Създаване на сървърен ключ“.
  3. Копирайте стойността веднага. Тя се показва само този един път и ние не съхраняваме копие.
  4. Въведете я в f12-security в полето, означено като сървърен ключ, и запазете.

Сървърният ключ принадлежи само в настройките на Вашия сървър, никога в страница или скрипт, достъпни за посетителите. Ако го загубите, създайте нов в таблото; старият ще престане да е валиден.

Проверете дали работи

Истинско изпращане

Отворете страницата с формуляра в частен прозорец, попълнете го ръчно и го изпратете. Виждате обичайното потвърждение на Вашия формуляр, а изпращането се появява с присъдата си в таблото на SilentShield.

Отхвърлено изпращане

Изпратете същото без браузър, например коментар чрез curl към публикация с отворени коментари. Заменете адреса и ID на публикацията:

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

Очаквайте отказ със съобщението на плъгина, на англоезичен сайт „Captcha not correct: Behavior check“. При Contact Form 7 формулярът показва „Behavior check“.

Отстраняване на проблеми

При щракване върху „Изпращане“ нищо не се случва.
Страницата обслужва ли се през http вместо https? Тогава конзолата на браузъра показва предупреждението „[SilentShield] Web Crypto fehlt im Worker …“ (съобщението е на немски). Обслужвайте страницата през https.
Contact Form 7 съобщава „There was an error trying to send your message“.
Проверката е преминала; неуспешно е изпращането на имейла от WordPress. Проверете настройките за поща (например SMTP), а не защитата от ботове.
Истински посетители получават „Behavior check“.
Най-честата причина е плъгин за оптимизация, който забавя или обединява JavaScript — вижте бележката по-долу. Проверете също дали ключът принадлежи на домейна на страницата.
Формуляр на WPForms не се изпраща или блоковото плащане отхвърля всяка поръчка.
Актуализирайте плъгина SilentShield до версия 2.15.14 или по-нова. Измерихме и двата проблема при версия 2.15.12; при 2.15.14 те вече не се появяват.
Искате да видите какво прави скриптът.
Добавете ?silentshield-debug към адреса на страницата. Тогава конзолата на браузъра показва всяка стъпка от проверката.

Изключете SilentShield от JavaScript оптимизаторите

Плъгините за кеширане и скорост (WP Rocket, Perfmatters, LiteSpeed, Autoptimize и други) могат да отлагат JavaScript до първото взаимодействие на посетителя и да обединяват файловете. И двете чупят SilentShield: приставката тръгва едва при щракване, липсват поведенческите сигнали от зареждането на страницата (движение на мишката, ритъм на писане, тайминг) и защитата работи с частица от нужното. Сканиранията на формуляри изобщо не се изпълняват. Добавете тези шаблони в списъците с изключения на вашия оптимизатор — както за „отлагане на JavaScript“, така и за „обединяване на JavaScript“:

Шаблони за изключванеtext
client.js
behavior-captcha
silentshield

За проверка: отворете страница с формуляр и изпълнете performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() в конзолата на браузъра, БЕЗ да щраквате преди това. Празен резултат значи, че SilentShield още не се е заредил — липсва изключение.

Ограничения

  • Защитени са само плъгините за формуляри, които включите в „SilentShield → Forms“.
  • Посочваме само проверени версии. Плъгинът разпознава и други плъгини за формуляри; дали те работят със SilentShield, не сме проверили.
  • Плъгинът има собствени проверки (например honeypot и измерване на времето) и показва за тях собствени съобщения, като „JavaScript check“.
  • SilentShield защитава формуляри от ботове. Той не заменя защитна стена за уеб приложения (WAF) или защита от DDoS.

Експлоатация

  • Актуализирате плъгина през WordPress като всеки друг. Скриптът в браузъра винаги идва от нас в актуалната си версия.
  • Всяко изпращане се отчита двойно в квотата: веднъж за съобщението от браузъра и веднъж за проверката на Вашия сървър.
  • Присъдите и отхвърлените изпращания виждате в таблото на SilentShield.

Вижте цени и квоти

Без плъгина: собствено вграждане

За собствени формуляри или без плъгина вградете скрипта сами и проверявайте всяко изпращане на Вашия сървър. Без тази проверка скриптът не защитава: той не спира заявка, изпратена директно.

1. Добавете скрипта

Добавете този код към functions.php на вашата тема или използвайте плъгин като „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. Проверка от страна на сървъра

Добавете верификация на nonce към обработчика на формуляра. За персонализирани формуляри добавете това към функцията за обработка:

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));
    }
}

Съхранение на API ключа

Добавете вашия API ключ в wp-config.php за сигурност:

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

Наблюдение на AI агенти

Освен защитата на формуляри WordPress може да записва и кои AI обхождащи ботове (GPTBot, ClaudeBot, PerplexityBot, …) четат сайта ви — днес чрез малък must-use файл; предстояща актуализация на плъгина ще го вгради.

Научете повече: Наблюдение на AI агенти →