서버 측 검증

항상 서버에서 SilentShield Nonce를 검증하세요. 클라이언트 측 검사만으로는 봇이 우회할 수 있습니다.

왜 서버 측 검증이 필요한가요?

위젯은 브라우저에서 실행되며 폼에 Nonce를 삽입합니다. 봇은 위젯을 건너뛰고 폼을 직접 제출할 수 있습니다. 서버 측 검증을 통해 Nonce가 SilentShield에 의해 정당하게 발급되고 검증되었는지 확인합니다.

API 엔드포인트

Method
POST
URL
https://api.silentshield.io/api/v1/captcha/verify-nonce
Headers
X-Api-Key: YOUR_API_KEY Content-Type: application/json
Body
{ "nonce": "the-nonce-from-the-form" }

응답 형식

Responsejson
{
  "ok": true,
  "verdict": "human",
  "confidence": 0.92,
  "requested_nonce": "..."
}
human
human — 사용자가 사람일 가능성이 매우 높습니다. 폼을 처리하세요.
suspicious
suspicious — 서버가 거부했습니다(HTTP 403, `ok: false`). 판정은 결정이 아니라 이유를 알려 줍니다. 결정은 계정의 임계값에 의해 이미 내려졌습니다.
bot
bot — 봇일 확률이 높습니다. 폼을 거부하세요.

권장 로직

서버는 이미 계정의 임계값을 적용했습니다. 거부는 HTTP 403과 `ok: false`로 도착합니다. 따라서 `bot`이 아니라 통과 여부를 확인하십시오. 그렇지 않으면 `suspicious`로 내려진 모든 거부와 판정이 없는 모든 응답(잘못된 키, 할당량 소진)을 통과시키게 됩니다.

Server-Side Logicjavascript
if not ok or verdict != "human":
    양식 거부 (403)
else:
    양식 정상 처리

오류 처리

SilentShield API에 연결할 수 없는 경우(타임아웃, 5xx 오류), 전략을 결정하세요:

Fail Open
Fail open — 폼을 수락합니다 (더 나은 사용자 경험, 보안 수준 낮음)
Fail Closed
Fail closed — 폼을 거부합니다 (더 높은 보안, 사용자 경험 저하)

대부분의 애플리케이션에서는 로깅과 함께 fail open을 권장합니다. 중요한 폼(로그인, 결제)의 경우 fail closed를 사용해야 합니다.