サーバーサイド検証
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
- フェイルオープン — フォームを受け入れます(UXが良いが、安全性は低い)
- Fail Closed
- フェイルクローズド — フォームを拒否します(安全性が高いが、UXは悪い)
ほとんどのアプリケーションでは、ロギング付きのフェイルオープンを推奨します。重要なフォーム(ログイン、決済)ではフェイルクローズドにしてください。