サーバーサイド検証

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は悪い)

ほとんどのアプリケーションでは、ロギング付きのフェイルオープンを推奨します。重要なフォーム(ログイン、決済)ではフェイルクローズドにしてください。