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?k=YOUR_API_KEY',
        array(),
        null,
        true
    );
}
add_action('wp_enqueue_scripts', 'silentshield_enqueue');

2. 서버 측 검증

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

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['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를 삽입합니다.

AI 에이전트 관찰

폼 보호 외에도 WordPress는 어떤 AI 크롤러(GPTBot, ClaudeBot, PerplexityBot 등)가 사이트를 읽는지 기록할 수 있습니다 — 지금은 작은 must-use 플러그인 파일로, 향후 플러그인 업데이트에 내장될 예정입니다.

자세히 보기: AI 에이전트 관찰 →

SilentShield을 JavaScript 최적화에서 제외하기

캐시·속도 플러그인(WP Rocket, Perfmatters, LiteSpeed, Autoptimize 등)은 JavaScript를 방문자의 첫 상호작용까지 지연시키거나 파일을 하나로 합칠 수 있습니다. 둘 다 SilentShield를 망가뜨립니다. 위젯이 클릭할 때까지 실행되지 않아 페이지 로드부터의 행동 신호(마우스 움직임, 입력 리듬, 타이밍)가 사라지고, 보호 기능은 필요한 정보의 일부만으로 동작합니다. 양식 검사는 아예 실행되지 않습니다. 다음 패턴을 최적화 플러그인의 제외 목록에 추가하세요. “JavaScript 지연”과 “JavaScript 결합” 양쪽 모두에 필요합니다:

제외 패턴text
client.js
behavior-captcha
silentshield

확인 방법: 양식이 있는 페이지를 열고 아무것도 클릭하지 않은 상태에서 브라우저 콘솔에 performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() 를 실행하세요. 결과가 비어 있으면 SilentShield가 아직 로드되지 않은 것이며, 제외 설정이 빠진 것입니다.

API 키 저장

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

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