서버 측 검증

항상 서버에서 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
{
  "verdict": "human",
  "score": 0.92,
  "difficulty": "pass",
  "challenge_required": false
}
human
human — 사용자가 사람일 가능성이 매우 높습니다. 폼을 처리하세요.
suspicious
suspicious — 사용자가 봇일 수 있습니다. 추가 확인을 고려하세요.
bot
bot — 봇일 확률이 높습니다. 폼을 거부하세요.

권장 로직

대부분의 경우 verdict 필드를 확인합니다:

Server-Side Logicjavascript
if verdict == "bot":
    reject the submission (403)
elif verdict == "suspicious":
    optionally require additional verification
else:
    process the form normally

오류 처리

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

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

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