web-dev-qa-db-ja.com

GoogleのRecaptcha V3-スコアを追跡する必要がありますか、それとも「成功」で十分でしょうか?

背景:私のウェブサイトはかなりシンプルで、メインページにリンクのリスト(サードパーティのサービスによって提供される)が含まれています。各リンクは、ファイルアップロード入力を送信ボタンでポップアップ表示します。そのポップアップで、Recaptchaスクリプトを埋め込み、ファイルの送信時にトークンを検証しました。この複数のポップアップ設定のため、ユーザーが検証メカニズムと対話する必要がないようにV3を選択しました。

さて、問題が発生しました-グーグルからのグーグルの応答をどのように解釈すべきですか?.

V3のGoogleドキュメントによると:

reCAPTCHAは、サイト上の実際のトラフィックを確認することで学習します。このため、ステージング環境または実装直後のスコアは、本番環境と異なる場合があります。 reCAPTCHA v3がユーザーフローを中断することはないため、最初にアクションを実行せずにreCAPTCHAを実行してから、管理コンソールでトラフィックを確認してしきい値を決定できます。 デフォルトでは、0.5のしきい値を使用できます。

この説明から、scoreが重要であることは私にはかなり明らかです。最も可能性の高いボットでは0.0、最も可能性の高い人間では1.0です。だから私のコードでは、それをチェックしますsuccess == trueおよびscore >= 0.5

ただし-noneサーバー側の検証のためにオンラインで見つけたV3の例では、スコアに注意を払っています。ここに3つあります。 3つとも、リクエストが成功したかどうかのみをチェックします。

https://stackoverflow.com/a/54118106/3367818

https://stackoverflow.com/a/52633797/3367818

https://dzone.com/articles/adding-google-recaptcha-v3-to-your-laravel-app

最後に、私の質問は-V3のメカニズムの誤解ですか、それとも私が何か不足しているのですか?

ありがとう。

8
noamyg

はい、Googleの確認応答で「スコア」の値を必ず確認する必要があります。

これら3つの例は非常に詳細に欠けており、実際にはかなり混乱しています。

「成功」とは、正しいトークンとシークレットを使用して整形式のリクエストを送信したことを意味します。

「score」の値をすでに確認しているようですが、それはすばらしいことですが、この質問を見つけて少し混乱している人のために、これを明確にしたいと思います。

5
Brett M