서버 측 검증
항상 서버에서 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를 사용해야 합니다.