SilentShield

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.

ObrazecPreizkušena različicaStanje
Contact Form 76.2Deluje
Fluent Forms6.2.15Deluje
Komentarji WordPress7.1.2Deluje
Prijava v WordPress7.1.2Deluje
Registracija v WordPress7.1.2Deluje
Blagajna WooCommerce (klasična)11.1.2Deluje
WPForms2.0.2.2Deluje
Blagajna WooCommerce (blokovna blagajna)11.1.2Deluje
Elementor Forms4.3.4 (Pro 4.2.1)Deluje
Avada Forms7.11.7Deluje

Namestitev

  1. V WordPressu odprite „Plugins → Add New“ in poiščite „SilentShield“.
  2. Namestite in aktivirajte „SilentShield – Captcha & Anti-Spam for WordPress“.
  3. V meniju se prikaže vnos „SilentShield“.

Vnesite ključ in vklopite obrazce

  1. V nadzorni plošči SilentShield ustvarite ključ za svojo domeno in ga kopirajte.
  2. V WordPressu odprite „SilentShield → API / SilentShield“, prilepite ključ v polje „API Key“ in kliknite „Validate“.
  3. Vklopite „Activate API“ in kliknite „Save“.
  4. 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:

Terminalbash
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«:

Vzorci izjemtext
client.js
behavior-captcha
silentshield

Za 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.

Oglejte si cene in kvote

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.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. Preverjanje na strežniku

Dodajte preverjanje nonce-a v obdelovalnik obrazca. Za obrazce po meri dodajte to v svojo funkcijo za obdelavo:

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

Shranjevanje API ključa

Dodajte svoj API ključ v wp-config.php za varnost:

wp-config.phpphp
// 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.

Več o tem: Opazovanje agentov UI →