SilentShield

Suojaa WordPress-lomakkeet SilentShieldillä

Virallinen lisäosa ”SilentShield – Captcha & Anti-Spam” lisää skriptin ja tarkistaa jokaisen lähetyksen palvelimellasi — ilman omaa koodia. Tässä ohjeessa kerrotaan vain se, mitä olemme itse testanneet lisäosan kanssa.

Näytä lisäosa WordPress-hakemistossa

Vaatimukset

  • WordPress 5.2 tai uudempi ja PHP 7.4 tai uudempi (lisäosan ilmoitus WordPress-hakemistossa).
  • Sivustosi toimii https-yhteydellä. Ilman suojattua kontekstia selain ei tarjoa Web Crypto -toimintoja, nonce-arvoa ei synny eikä suojattuja lomakkeita voi lähettää.
  • SilentShield-tili, jossa on avain verkkotunnuksellesi. Aliverkkotunnukset, kuten www. tai staging., sisältyvät siihen.

Mitä lomakkeita voi suojata

Testattu 7.10.2026 lisäosalla 2.15.14 ja WordPressillä 7.1.2: ihminen pääsee läpi ja vahvistetaan palvelimella, ilman selainta tehty lähetys hylätään.

LomakeTestattu versioTila
Contact Form 76.2Toimii
Fluent Forms6.2.15Toimii
WordPress-kommentit7.1.2Toimii
WordPress-kirjautuminen7.1.2Toimii
WordPress-rekisteröityminen7.1.2Toimii
WooCommerce-kassa (klassinen)11.1.2Toimii
WPForms2.0.2.2Toimii
WooCommerce-kassa (lohkopohjainen kassa)11.1.2Toimii
Elementor Forms4.3.4 (Pro 4.2.1)Toimii
Avada Forms7.11.7Toimii

Asennus

  1. Avaa WordPressissä ”Lisäosat → Lisää uusi” ja hae ”SilentShield”.
  2. Asenna ja ota käyttöön ”SilentShield – Captcha & Anti-Spam for WordPress”.
  3. Valikossa on nyt kohta ”SilentShield”.

Syötä avain ja ota lomakkeet käyttöön

  1. Luo SilentShieldin hallintapaneelissa avain verkkotunnuksellesi ja kopioi se.
  2. Avaa WordPressissä ”SilentShield → API / SilentShield”, liitä avain kenttään ”API Key” ja napsauta ”Validate”.
  3. Ota käyttöön ”Activate API” ja napsauta ”Save”.
  4. Avaa ”SilentShield → Forms” ja ota suojaus käyttöön jokaiselle lomakelisäosalle, jonka tila yllä olevassa taulukossa on ”Toimii”.

Lisäosa käyttää sivustoavainta sekä selaimessa että palvelimellasi tehtävään tarkistukseen. Palvelinavainta ei tähän tarvita.

Tarkista, että se toimii

Aito lähetys

Avaa lomakkeen sisältävä sivu yksityisessä ikkunassa, täytä lomake käsin ja lähetä se. Näet lomakkeesi tavallisen vahvistuksen, ja lähetys näkyy arvionsa kanssa SilentShieldin hallintapaneelissa.

Hylätty lähetys

Lähetä sama ilman selainta, esimerkiksi kommentti curlilla artikkeliin, jonka kommentointi on avoinna. Vaihda osoite ja artikkelin ID:

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

Odotettavissa on hylkäys lisäosan viestillä, englanninkielisellä sivustolla ”Captcha not correct: Behavior check”. Contact Form 7:ssä lomakkeessa näkyy ”Behavior check”.

Vianmääritys

”Lähetä”-painikkeen napsauttaminen ei tee mitään.
Toimiiko sivu http- eikä https-yhteydellä? Selaimen konsoli näyttää silloin varoituksen ”[SilentShield] Web Crypto fehlt im Worker …” (viesti on saksaksi). Tarjoa sivu https-yhteydellä.
Contact Form 7 ilmoittaa ”There was an error trying to send your message”.
Tarkistus on läpäisty; epäonnistui WordPressin sähköpostin lähetys. Tarkista sähköpostiasetukset (esimerkiksi SMTP), ei bottisuojausta.
Oikeat kävijät saavat viestin ”Behavior check”.
Yleisin syy on optimointilisäosa, joka viivästää tai yhdistää JavaScriptiä — katso huomautus alla. Tarkista myös, että avain kuuluu sivun verkkotunnukselle.
WPForms-lomake ei lähety, tai lohkopohjainen kassa hylkää jokaisen tilauksen.
Päivitä SilentShield-lisäosa versioon 2.15.14 tai uudempaan. Mittasimme molemmat ongelmat versiolla 2.15.12; versiolla 2.15.14 niitä ei enää esiinny.
Haluat nähdä, mitä skripti tekee.
Lisää sivun osoitteen perään ?silentshield-debug. Selaimen konsoli näyttää silloin tarkistuksen jokaisen vaiheen.

Jätä SilentShield JavaScript-optimoijien ulkopuolelle

Välimuisti- ja nopeuslisäosat (WP Rocket, Perfmatters, LiteSpeed, Autoptimize ja muut) voivat viivyttää JavaScriptiä kävijän ensimmäiseen vuorovaikutukseen asti ja yhdistää tiedostot yhdeksi paketiksi. Molemmat rikkovat SilentShieldin: vimpain käynnistyy vasta napsautuksesta, sivulatauksesta alkavat käyttäytymissignaalit (hiiren liike, kirjoitusrytmi, ajoitukset) puuttuvat, ja suojaus toimii murto-osalla tarvitsemastaan. Lomakeskannaukset eivät käynnisty lainkaan. Lisää nämä hahmot optimoijasi poissulkulistoihin sekä ”viivytä JavaScript” että ”yhdistä JavaScript” -asetuksissa:

Poissulkuhahmottext
client.js
behavior-captcha
silentshield

Tarkistus: avaa lomakkeen sisältävä sivu ja suorita performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() selaimen konsolissa ILMAN napsautusta. Tyhjä tulos tarkoittaa, ettei SilentShield ole vielä latautunut — poissulku puuttuu.

Rajoitukset

  • Suojattuja ovat vain ne lomakelisäosat, jotka otat käyttöön kohdassa ”SilentShield → Forms”.
  • Mainitsemme vain testatut versiot. Lisäosa tunnistaa muitakin lomakelisäosia; emme ole testanneet, toimivatko ne SilentShieldin kanssa.
  • Lisäosassa on omia tarkistuksia (kuten honeypot ja ajoituksen mittaus), ja niistä se näyttää omia viestejään, kuten ”JavaScript check”.
  • SilentShield suojaa lomakkeita boteilta. Se ei korvaa verkkosovelluspalomuuria eikä DDoS-suojausta.

Käyttö

  • Päivität lisäosan WordPressin kautta kuten minkä tahansa muun. Selaimen skripti tulee aina meiltä ajantasaisena versiona.
  • Jokainen lähetys lasketaan kiintiöön kahdesti: kerran selaimen raportista ja kerran palvelimellasi tehtävästä tarkistuksesta.
  • Näet arviot ja hylätyt lähetykset SilentShieldin hallintapaneelissa.

Katso hinnat ja kiintiöt

Ilman lisäosaa: oma integraatio

Omissa lomakkeissa tai ilman lisäosaa lisää skripti itse ja tarkista jokainen lähetys palvelimellasi. Ilman tätä tarkistusta skripti ei suojaa: se ei pysäytä suoraan lähetettyä pyyntöä.

1. Lisää skripti

Lisää tämä koodi teemasi functions.php-tiedostoon tai käytä lisäosaa kuten '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. Palvelinpuolen vahvistus

Lisää nonce-vahvistus lomakekäsittelijääsi. Mukautetuissa lomakkeissa lisää tämä käsittelyfunktioosi:

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-avaimen tallennus

Lisää API-avaimesi wp-config.php-tiedostoon turvallisuuden takaamiseksi:

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

Tarkkaile tekoälyagentteja

Lomakesuojauksen lisäksi WordPress voi myös tallentaa, mitkä AI-indeksoijat (GPTBot, ClaudeBot, PerplexityBot, …) lukevat sivustoasi — jo nyt pienellä must-use-lisäosatiedostolla; tuleva lisäosapäivitys tuo tämän sisäänrakennettuna.

Lue lisää: Tarkkaile tekoälyagentteja →