Защитете формулярите в 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 7 | 6.2 | Работи |
| Fluent Forms | 6.2.15 | Работи |
| Коментари в WordPress | 7.1.2 | Работи |
| Вход в WordPress | 7.1.2 | Работи |
| Регистрация в WordPress | 7.1.2 | Работи |
| Плащане в WooCommerce (класическо) | 11.1.2 | Работи |
| WPForms | 2.0.2.2 | Работи |
| Плащане в WooCommerce (блоково плащане) | 11.1.2 | Работи |
| Elementor Forms | 4.3.4 (Pro 4.2.1) | Работи |
| Avada Forms | 7.11.7 | Работи |
Инсталиране
- В WordPress отворете „Plugins → Add New“ и потърсете „SilentShield“.
- Инсталирайте и активирайте „SilentShield – Captcha & Anti-Spam for WordPress“.
- В менюто се появява елементът „SilentShield“.
Въведете ключа и включете формулярите
- Създайте ключ за Вашия домейн в таблото на SilentShield и го копирайте.
- В WordPress отворете „SilentShield → API / SilentShield“, поставете ключа в „API Key“ и щракнете върху „Validate“.
- Включете „Activate API“ и щракнете върху „Save“.
- Отворете „SilentShield → Forms“ и включете защитата за всеки плъгин за формуляри, който в таблицата по-горе е отбелязан като „Работи“.
Плъгинът използва ключа на сайта както в браузъра, така и за проверката на Вашия сървър. За това не е нужен сървърен ключ.
Сървърен ключ за приставката f12-security
Приставката f12-security може по желание да обменя сигнали за ботове със SilentShield: тя съобщава отпечатъци на известни ботове и изтегля подписан списък за Вашия акаунт. Тези заявки се изпращат от Вашия сървър, а не от браузъра на посетителите. За целта приставката се нуждае от сървърния ключ на Вашия домейн — не от обикновения ключ на уебсайта, който се вижда в изходния код на Вашите страници.
- В таблото на SilentShield отворете „API ключове“ и ключа на Вашия домейн.
- Преминете към страницата „Сигурност“ и в раздела „Сървърен ключ“ щракнете върху „Създаване на сървърен ключ“.
- Копирайте стойността веднага. Тя се показва само този един път и ние не съхраняваме копие.
- Въведете я в f12-security в полето, означено като сървърен ключ, и запазете.
Сървърният ключ принадлежи само в настройките на Вашия сървър, никога в страница или скрипт, достъпни за посетителите. Ако го загубите, създайте нов в таблото; старият ще престане да е валиден.
Проверете дали работи
Истинско изпращане
Отворете страницата с формуляра в частен прозорец, попълнете го ръчно и го изпратете. Виждате обичайното потвърждение на Вашия формуляр, а изпращането се появява с присъдата си в таблото на SilentShield.
Отхвърлено изпращане
Изпратете същото без браузър, например коментар чрез curl към публикация с отворени коментари. Заменете адреса и ID на публикацията:
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“:
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.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 към обработчика на формуляра. За персонализирани формуляри добавете това към функцията за обработка:
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.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');Наблюдение на AI агенти
Освен защитата на формуляри WordPress може да записва и кои AI обхождащи ботове (GPTBot, ClaudeBot, PerplexityBot, …) четат сайта ви — днес чрез малък must-use файл; предстояща актуализация на плъгина ще го вгради.