WordPress 연동

SilentShield로 WordPress 폼을 보호하세요. Contact Form 7, WPForms, Gravity Forms 및 모든 커스텀 폼과 호환됩니다.

1. 스크립트 추가

테마의 functions.php에 다음 코드를 추가하거나 '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. 서버 측 검증

폼 핸들러에 Nonce 검증을 추가합니다. 커스텀 폼의 경우 처리 함수에 다음을 추가하세요:

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

위젯은 Contact Form 7 폼을 자동으로 감지합니다. 추가 설정이 필요하지 않습니다. 스크립트를 추가하기만 하면 페이지의 모든 CF7 폼이 보호됩니다.

WPForms / Gravity Forms

SilentShield는 WPForms, Gravity Forms 및 기타 인기 폼 플러그인의 폼을 자동으로 감지합니다. 위젯은 페이지에서 찾은 모든 폼에 Nonce를 삽입합니다.

API 키 저장

보안을 위해 API 키를 wp-config.php에 추가하세요:

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