SilentShield

Beskyt WordPress-formularer med SilentShield

Det officielle plugin »SilentShield – Captcha & Anti-Spam« indsætter scriptet og kontrollerer hver indsendelse på din server — uden din egen kode. Denne vejledning nævner kun det, vi selv har testet med pluginnet.

Se pluginnet i WordPress-biblioteket

Krav

  • WordPress 5.2 eller nyere og PHP 7.4 eller nyere (som angivet af pluginnet i WordPress-biblioteket).
  • Dit website kører over https. Uden en sikker kontekst stiller browseren ingen Web Crypto-funktioner til rådighed, der oprettes ingen nonce, og beskyttede formularer kan ikke indsendes.
  • En SilentShield-konto med en nøgle til dit domæne. Underdomæner som www. eller staging. er inkluderet.

Hvilke formularer kan beskyttes

Testet den 7.10.2026 med plugin 2.15.14 og WordPress 7.1.2: et menneske kommer igennem og bekræftes på serveren, en indsendelse uden browser afvises.

FormularTestet versionStatus
Contact Form 76.2Virker
Fluent Forms6.2.15Virker
WordPress-kommentarer7.1.2Virker
WordPress-login7.1.2Virker
WordPress-registrering7.1.2Virker
WooCommerce-kasse (klassisk)11.1.2Virker
WPForms2.0.2.2Virker
WooCommerce-kasse (blok-checkout)11.1.2Virker
Elementor Forms4.3.4 (Pro 4.2.1)Virker
Avada Forms7.11.7Virker

Installation

  1. Åbn »Plugins → Tilføj nyt« i WordPress, og søg efter »SilentShield«.
  2. Installer og aktivér »SilentShield – Captcha & Anti-Spam for WordPress«.
  3. Menuen har nu et punkt »SilentShield«.

Indtast nøglen, og slå formularer til

  1. Opret en nøgle til dit domæne i SilentShield-dashboardet, og kopiér den.
  2. Åbn »SilentShield → API / SilentShield« i WordPress, indsæt nøglen under »API Key«, og klik på »Validate«.
  3. Slå »Activate API« til, og klik på »Save«.
  4. Åbn »SilentShield → Forms«, og slå beskyttelsen til for hvert formular-plugin, der står som »Virker« i tabellen ovenfor.

Pluginnet bruger webstedsnøglen både i browseren og til kontrollen på din server. Der kræves ingen servernøgle til dette.

Kontrollér, at det virker

En ægte indsendelse

Åbn siden med formularen i et privat vindue, udfyld den manuelt, og send den. Du ser formularens normale bekræftelse, og indsendelsen vises med sin vurdering i SilentShield-dashboardet.

En afvist indsendelse

Send det samme uden browser, for eksempel en kommentar via curl til et indlæg med åbne kommentarer. Erstat adressen og indlæggets ID:

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

Forvent en afvisning med pluginnets meddelelse, på et engelsksproget website »Captcha not correct: Behavior check«. Med Contact Form 7 viser formularen »Behavior check«.

Fejlfinding

Der sker ingenting, når du klikker på »Send«.
Leveres siden over http i stedet for https? Så viser browserkonsollen advarslen »[SilentShield] Web Crypto fehlt im Worker …« (meddelelsen er på tysk). Lever siden over https.
Contact Form 7 melder »There was an error trying to send your message«.
Kontrollen er bestået; det, der fejlede, er WordPress' afsendelse af mailen. Kontrollér mailindstillingerne (for eksempel SMTP), ikke botbeskyttelsen.
Rigtige besøgende får »Behavior check«.
Den hyppigste årsag er et optimeringsplugin, der forsinker eller samler JavaScript — se bemærkningen nedenfor. Kontrollér også, at nøglen hører til sidens domæne.
En WPForms-formular bliver ikke sendt, eller blok-checkout afviser hver ordre.
Opdater SilentShield-pluginet til version 2.15.14 eller nyere. Vi målte begge problemer med version 2.15.12; med 2.15.14 optræder de ikke længere.
Du vil se, hvad scriptet gør.
Tilføj ?silentshield-debug til sidens adresse. Browserkonsollen viser så hvert trin i kontrollen.

Undtag SilentShield fra JavaScript-optimering

Cache- og hastighedsplugins (WP Rocket, Perfmatters, LiteSpeed, Autoptimize med flere) kan udsætte JavaScript til besøgendes første interaktion og samle filer i ét bundt. Begge dele ødelægger SilentShield: widgetten starter først ved et klik, adfærdssignalerne fra sideindlæsningen (musebevægelse, skriverytme, timing) mangler, og beskyttelsen arbejder med en brøkdel af det, den har brug for. Formularscanninger kører slet ikke. Tilføj disse mønstre til din optimerings undtagelseslister — både for “udsæt JavaScript” og “kombinér JavaScript”:

Undtagelsesmønstretext
client.js
behavior-captcha
silentshield

Tjek: åbn en side med en formular og kør performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() i browserkonsollen UDEN at klikke først. Et tomt resultat betyder, at SilentShield endnu ikke er indlæst — så mangler der en undtagelse.

Begrænsninger

  • Kun de formular-plugins, du slår til under »SilentShield → Forms«, er beskyttet.
  • Vi nævner kun testede versioner. Pluginnet genkender flere formular-plugins; om de virker med SilentShield, har vi ikke testet.
  • Pluginnet har sine egne kontroller (såsom honeypot og tidsmåling) og viser sine egne meddelelser for dem, såsom »JavaScript check«.
  • SilentShield beskytter formularer mod bots. Det erstatter ikke en webapplikationsfirewall eller DDoS-beskyttelse.

Drift

  • Du opdaterer pluginnet via WordPress som ethvert andet. Scriptet i browseren kommer altid fra os i den aktuelle version.
  • Hver indsendelse tæller dobbelt i kvoten: én gang for rapporten fra browseren og én gang for kontrollen på din server.
  • Du ser vurderinger og afviste indsendelser i SilentShield-dashboardet.

Se priser og kvoter

Uden pluginnet: din egen integration

Til dine egne formularer eller uden pluginnet indsætter du selv scriptet og kontrollerer hver indsendelse på din server. Uden den kontrol beskytter scriptet ikke: det stopper ikke en direkte sendt anmodning.

1. Tilføj scriptet

Tilføj denne kode til dit temas functions.php eller brug et plugin som »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. Serversideverificering

Tilføj nonce-verificering til din formular-handler. For tilpassede formularer, tilføj dette til din behandlingsfunktion:

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

Opbevaring af API-nøglen

Tilføj din API-nøgle til wp-config.php for sikkerhed:

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

Observér AI-agenter

Ud over formularbeskyttelsen kan WordPress også registrere, hvilke AI-crawlere (GPTBot, ClaudeBot, PerplexityBot, …) der læser dit website — i dag via en lille must-use-pluginfil; en kommende pluginopdatering bygger det ind.

Læs mere: Observér AI-agenter →