Zaščitite obrazce v WordPressu s SilentShield
Uradni vtičnik „SilentShield – Captcha & Anti-Spam“ vključi skript in preveri vsako oddajo na vašem strežniku — brez lastne kode. Ta navodila navajajo samo to, kar smo z vtičnikom preizkusili sami.
Oglejte si vtičnik v imeniku WordPress
Zahteve
- WordPress 5.2 ali novejši in PHP 7.4 ali novejši (po navedbi vtičnika v imeniku WordPress).
- Vaše spletno mesto deluje prek https. Brez varnega konteksta brskalnik ne zagotavlja funkcij Web Crypto, nonce ne nastane in zaščitenih obrazcev ni mogoče oddati.
- Račun SilentShield s ključem za vašo domeno. Poddomene, kot sta www. ali staging., so vključene.
Katere obrazce je mogoče zaščititi
Preizkušeno 7. 10. 2026 z vtičnikom 2.15.14 in WordPressom 7.1.2: človek pride skozi in je potrjen na strežniku, oddaja brez brskalnika je zavrnjena.
| Obrazec | Preizkušena različica | Stanje |
|---|---|---|
| Contact Form 7 | 6.2 | Deluje |
| Fluent Forms | 6.2.15 | Deluje |
| Komentarji WordPress | 7.1.2 | Deluje |
| Prijava v WordPress | 7.1.2 | Deluje |
| Registracija v WordPress | 7.1.2 | Deluje |
| Blagajna WooCommerce (klasična) | 11.1.2 | Deluje |
| WPForms | 2.0.2.2 | Deluje |
| Blagajna WooCommerce (blokovna blagajna) | 11.1.2 | Deluje |
| Elementor Forms | 4.3.4 (Pro 4.2.1) | Deluje |
| Avada Forms | 7.11.7 | Deluje |
Namestitev
- V WordPressu odprite „Plugins → Add New“ in poiščite „SilentShield“.
- Namestite in aktivirajte „SilentShield – Captcha & Anti-Spam for WordPress“.
- V meniju se prikaže vnos „SilentShield“.
Vnesite ključ in vklopite obrazce
- V nadzorni plošči SilentShield ustvarite ključ za svojo domeno in ga kopirajte.
- V WordPressu odprite „SilentShield → API / SilentShield“, prilepite ključ v polje „API Key“ in kliknite „Validate“.
- Vklopite „Activate API“ in kliknite „Save“.
- Odprite „SilentShield → Forms“ in vklopite zaščito za vsak vtičnik za obrazce, ki je v zgornji tabeli označen kot „Deluje“.
Vtičnik uporablja ključ spletnega mesta tako v brskalniku kot za preverjanje na vašem strežniku. Strežniški ključ za to ni potreben.
Preverite delovanje
Pristna oddaja
Stran z obrazcem odprite v zasebnem oknu, ga izpolnite ročno in oddajte. Videli boste običajno potrditev svojega obrazca, v nadzorni plošči SilentShield pa se oddaja prikaže z oceno.
Zavrnjena oddaja
Pošljite isto brez brskalnika, na primer komentar prek curl na prispevek z odprtimi komentarji. Zamenjajte naslov in ID prispevka:
curl -i -X POST https://example.com/wp-comments-post.php \
-d "comment_post_ID=1&author=Test&[email protected]&comment=Test"Pričakujte zavrnitev s sporočilom vtičnika, na angleškem spletnem mestu „Captcha not correct: Behavior check“. Pri Contact Form 7 obrazec prikaže „Behavior check“.
Odpravljanje težav
- Ob kliku na „Pošlji“ se nič ne zgodi.
- Ali se stran streže prek http namesto https? Konzola brskalnika takrat prikaže opozorilo „[SilentShield] Web Crypto fehlt im Worker …“ (sporočilo je v nemščini). Stran strezite prek https.
- Contact Form 7 sporoči „There was an error trying to send your message“.
- Preverjanje je uspelo; ni uspelo pošiljanje e-pošte iz WordPressa. Preverite nastavitve pošte (na primer SMTP), ne zaščite pred boti.
- Pravi obiskovalci dobijo „Behavior check“.
- Najpogostejši vzrok je optimizacijski vtičnik, ki zakasni ali združuje JavaScript — glejte opombo spodaj. Preverite tudi, ali ključ pripada domeni strani.
- Obrazec WPForms se ne odda ali blokovna blagajna zavrne vsako naročilo.
- Posodobite vtičnik SilentShield na različico 2.15.14 ali novejšo. Obe težavi smo izmerili z različico 2.15.12; z različico 2.15.14 se ne pojavljata več.
- Želite videti, kaj počne skript.
- Naslovu strani dodajte ?silentshield-debug. Konzola brskalnika nato prikaže vsak korak preverjanja.
Izvzemite SilentShield iz optimizatorjev JavaScripta
Vtičniki za predpomnjenje in hitrost (WP Rocket, Perfmatters, LiteSpeed, Autoptimize in drugi) lahko zamaknejo JavaScript do prve interakcije obiskovalca in združijo datoteke v en paket. Oboje pokvari SilentShield: pripomoček se zažene šele ob kliku, manjkajo vedenjski signali od nalaganja strani (premik miške, ritem tipkanja, časi), zaščita pa dela z delcem tega, kar potrebuje. Pregledi obrazcev sploh ne tečejo. Dodajte te vzorce na sezname izjem svojega optimizatorja — tako za »zamik JavaScripta« kot za »združevanje JavaScripta«:
client.js
behavior-captcha
silentshieldZa preverjanje: odprite stran z obrazcem in v konzoli brskalnika zaženite performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join(), BREZ predhodnega klika. Prazen rezultat pomeni, da se SilentShield še ni naložil — manjka izjema.
Omejitve
- Zaščiteni so samo vtičniki za obrazce, ki jih vklopite pod „SilentShield → Forms“.
- Navajamo samo preizkušene različice. Vtičnik zazna tudi druge vtičnike za obrazce; ali delujejo s SilentShield, nismo preizkusili.
- Vtičnik ima lastna preverjanja (na primer honeypot in merjenje časa) in zanje prikazuje lastna sporočila, kot je „JavaScript check“.
- SilentShield ščiti obrazce pred boti. Ne nadomešča požarnega zidu za spletne aplikacije ali zaščite pred DDoS.
Delovanje
- Vtičnik posodabljate prek WordPressa kot vsakega drugega. Skript v brskalniku vedno prihaja od nas v aktualni različici.
- Vsaka oddaja se v kvoto šteje dvakrat: enkrat za poročilo iz brskalnika, enkrat za preverjanje na vašem strežniku.
- Ocene in zavrnjene oddaje vidite v nadzorni plošči SilentShield.
Brez vtičnika: lastna vgradnja
Za lastne obrazce ali brez vtičnika skript vključite sami in vsako oddajo preverite na svojem strežniku. Brez tega preverjanja skript ne ščiti: neposredno poslane zahteve ne ustavi.
1. Dodajte skript
Dodajte to kodo v datoteko functions.php vaše teme ali uporabite vtičnik kot „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. Preverjanje na strežniku
Dodajte preverjanje nonce-a v obdelovalnik obrazca. Za obrazce po meri dodajte to v svojo funkcijo za obdelavo:
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));
}
}Shranjevanje API ključa
Dodajte svoj API ključ v wp-config.php za varnost:
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');Opazovanje agentov UI
Poleg zaščite obrazcev lahko WordPress beleži tudi, kateri AI pajki (GPTBot, ClaudeBot, PerplexityBot, …) berejo vaše spletno mesto — danes prek majhne must-use datoteke; prihajajoča posodobitev vtičnika bo to vgradila.