WordPress integracija

Apsaugokite savo WordPress formas su SilentShield. Veikia su Contact Form 7, WPForms, Gravity Forms ir bet kokiomis pasirinktinėmis formomis.

1. Pridėkite skriptą

Pridėkite šį kodą prie savo temos functions.php arba naudokite įskiepį, pavyzdžiui, „Insert Headers and Footers":

functions.phpphp
// functions.php
function silentshield_enqueue() {
    wp_enqueue_script(
        'silentshield',
        'https://api.silentshield.io/client.js?key=YOUR_API_KEY',
        array(),
        null,
        true
    );
    wp_add_inline_script('silentshield', "
        document.addEventListener('DOMContentLoaded', function() {
            SilentShield.init({ apiKey: 'YOUR_API_KEY' });
        });
    ");
}
add_action('wp_enqueue_scripts', 'silentshield_enqueue');

2. Serverio pusės patikra

Pridėkite nonce patikrą prie savo formos apdorojimo. Pasirinktinėms formoms pridėkite tai prie savo apdorojimo funkcijos:

PHPphp
function verify_silentshield_nonce() {
    $nonce = sanitize_text_field($_POST['ss_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['verdict'] ?? '') === 'bot') {
        wp_die('Bot detected', 'Forbidden', array('response' => 403));
    }
}

Contact Form 7

Valdiklis automatiškai aptinka Contact Form 7 formas. Papildoma konfigūracija nereikalinga — tiesiog pridėkite skriptą ir valdiklis apsaugos visas CF7 formas puslapyje.

WPForms / Gravity Forms

SilentShield automatiškai aptinka formas iš WPForms, Gravity Forms ir kitų populiarių formų įskiepių. Valdiklis įterpia nonce į bet kurią formą, kurią randa puslapyje.

API rakto saugojimas

Pridėkite savo API raktą prie wp-config.php dėl saugumo:

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