SilentShield는 PHP 애플리케이션을 위한 보이지 않는 GDPR 준수 CAPTCHA 대안입니다. 양식에 클라이언트 스크립트를 추가하고, 모든 제출을 서버에서 단 한 번의 HTTP 호출과 하나의 API 키로 검증합니다 — 설치할 것도, 관리할 것도 없습니다. 쿠키 없음, 추적 없음, 개인정보 없음이며 호스팅은 기본적으로 EU 내에서만 이루어집니다.

보이지 않는 CAPTCHA — PHP

API 키 하나와 PHP 몇 줄이면 됩니다 — 패키지도, 의존성도 없습니다. Laravel, Symfony, 순수 PHP 모두에서 동작합니다. 보이지 않고, GDPR을 준수하며, 몇 분이면 연동됩니다.

PHP CAPTCHA 연동

PHP Developer Features

의존성 없음 — 순수 PHP 다섯 줄
PHP 8.1+ 호환
프레임워크 독립적 — Laravel, Symfony 또는 순수 PHP
nonce 기반 — 보이지 않고 사용자 상호작용이 없음
API 키 하나, 호출 하나: POST /captcha/verify-nonce
Fail-open 설계 — API 장애 시에도 절대 차단하지 않음

코드 예제

요구 사항

# No package, no dependency.
# PHP 8.1 or newer with the cURL extension — that is all.
php -m | grep curl

프런트엔드 삽입

<!-- Add to <head> with SRI for security -->
(function () {
  var KEY = "YOUR_API_KEY";
  var SITE = location.hostname;
  var V = "2025.09.1";
  var s = document.createElement('script');
  s.src = "https://api.silentshield.io/client.js?k=" + encodeURIComponent(KEY)
    + "&v=" + encodeURIComponent(V)
    + "&site=" + encodeURIComponent(SITE);
  s.async = true;
  s.crossOrigin = "anonymous";
  document.head.appendChild(s);
})();

백엔드 검증

<?php
$api_key = "YOUR_API_KEY";
$nonce = $_POST['behavior_nonce'] ?? ''; // hidden input injected by client.js

$payload = json_encode(['nonce' => $nonce]);

$ch = curl_init("https://api.silentshield.io/v1/verify");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Content-Type: application/json",
  "api-key: " . $api_key,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($http_code !== 200) {
  error_log("SilentShield API error: " . $http_code);
  // Fail secure: reject on API errors
  exit(json_encode(['error' => 'Verification failed']));
}

$data = json_decode($response, true);
$is_human = $data['ok'] && $data['verdict'] === 'human' && $data['confidence'] >= 0.7;

if (!$is_human) {
  error_log("Bot detected. Nonce: " . ($data['requested_nonce'] ?? 'unknown'));
  exit(json_encode(['error' => 'Bot detected']));
}

PHP에서 SilentShield가 작동하는 방식

SilentShield는 PHP 양식에 보이지 않는 검사를 추가하고 각 제출을 서버에서 검증합니다. 방문자가 양식을 작성하는 동안 클라이언트 스크립트가 백그라운드에서 실행되고, 생성된 토큰이 요청과 함께 전송됩니다. PHP 백엔드가 처리 전에 토큰을 확인하므로 실제 사용자에게는 퍼즐이 표시되지 않습니다.

한 번의 호출, 하나의 API 키

검증은 https://api.silentshield.io/api/v1/captcha/verify-nonce 로의 단일 POST이며, 키는 X-Api-Key 헤더에 넣습니다. 응답에서 ok를 읽고 false이면 제출을 거부하세요. 동일한 다섯 줄이 순수 PHP는 물론 Laravel과 Symfony에서도 동작합니다 — HTTP 호출에 프레임워크 고유의 것은 없습니다.

설정 안내

SilentShield 클라이언트 스크립트 https://api.silentshield.io/client.js?k=YOUR_API_KEY 를 양식에 추가하고 대시보드에서 API 키를 복사하세요. 제출 시 요청에서 토큰을 읽고 SilentShield\Client를 생성한 다음 verify를 호출하세요. 검사에 통과하면 양식을 처리하고, 그렇지 않으면 403 응답을 반환하여 제출을 거부하세요.

기본적으로 제공되는 개인정보 보호 및 접근성

SilentShield는 쿠키, 추적, 개인 데이터를 사용하지 않으므로 PHP 양식이 GDPR을 준수하도록 유지합니다. 모든 검증은 기본적으로 EU 내에서만 운영되는 인프라에서 실행됩니다. 이미지나 오디오 퍼즐이 없으므로 이 보호 기능은 WCAG 2.1 AA를 충족하며 키보드 및 스크린 리더 사용자가 계속 접근할 수 있습니다.

지금 PHP에 통합하기

PHP 다섯 줄 — 몇 분이면 완료.

자주 묻는 질문

PHP 사이트에 CAPTCHA를 어떻게 추가합니까?

페이지에 클라이언트 스크립트 `https://api.silentshield.io/client.js?k=당신의_API_키` 를 추가한 뒤, PHP에서 `https://api.silentshield.io/api/v1/captcha/verify-nonce` 로의 단일 POST로 proof-of-work 논스를 검증하세요. 키는 `X-Api-Key` 헤더로 보냅니다. API 키 하나가 프런트엔드와 백엔드를 모두 담당합니다.

SilentShield용 PHP SDK가 있습니까?

필요하지 않습니다. 검증은 한 번의 HTTP 호출이므로 cURL을 쓴 순수 PHP 몇 줄이면 Laravel, Symfony 또는 프레임워크 없이도 충분합니다. 클라이언트 스크립트를 추가하고, 양식을 수락하기 전에 응답의 `ok` 필드를 확인하세요. 패키지를 선호한다면 Agent Enforce 안내서가 GitHub에서 바로 설치하는 방법을 보여 줍니다.

PHP에서 SilentShield nonce를 어떻게 검증합니까?

양식이 제출한 `behavior_nonce` 를 `https://api.silentshield.io/api/v1/captcha/verify-nonce` 로 POST 하세요. API 키는 `X-Api-Key` 헤더에 넣습니다. 응답에는 `ok`, `verdict`, `confidence` 가 포함되며, `ok` 가 false이면 제출을 거부하세요.

SilentShield는 Laravel이나 순수 PHP와 함께 작동합니까?

예. 검증이 평범한 HTTP 호출이기 때문에 Laravel, Symfony, 순수 PHP 등 모든 PHP 애플리케이션에서 동작합니다. 양식에 클라이언트 스크립트를 추가하고, 제출을 처리하기 전에 서버에서 논스를 검증하면 됩니다.

SilentShield는 PHP 백엔드에서 GDPR을 준수합니까?

예. 백엔드가 무엇이든 SilentShield는 기본적으로 EU에 데이터를 보관하고, 쿠키를 설정하지 않으며, 추적하지 않고, 가명화된 데이터만 저장합니다. PHP 서버는 한 번의 HTTPS 호출로 논스를 검증하며 개인정보가 애플리케이션을 벗어나지 않습니다.

PHP 사용자는 퍼즐을 풀어야 합니까?

아니요. SilentShield는 보이지 않으므로 PHP 사이트 방문자는 이미지 퍼즐이나 체크박스를 보지 않습니다. 클라이언트 스크립트는 행동 신호와 작업 증명 nonce를 통해 실제 사용자를 백그라운드에서 검증하고 WCAG 2.1 AA를 충족하며, 백엔드는 `SilentShield\Client` 를 통해 봇을 차단합니다.