web-dev-qa-db-ja.com

Recaptchaが偽のユーザーエージェントを検出する方法

recaptcha__en.js 偽のUser-Agentを検出する方法を理解しようとしています。テストのために、アドオンのUser-Agentスイッチャーをインストールして demo here を試すことができます。ユーザーでは、UAが何であってもスコア0.9を取得しますが、ここではScoreログインせずに取得します。

  1. フレッシュオールドFirefox 46、オリジナルUA:0.3 - 0.7
  2. 元のUAでブラウザを更新:0.3 - 0.7
  3. スプーフィングされたUAで更新されたブラウザー:0.1

更新されたブラウザーでも表示されるように、UAを変更するとスコア0.1またはbot/spamとしてマークされるため、JavaScript変数navigatorまたは、reaptchaは偽のUAをどのように検出できますか?

1
uingtea

特定のブラウザには特定の機能があります。サービスは提供するJavaScriptを実行するため、実際のブラウザーで多くの機能テストを実行できます。これは、userAgent文字列を検証するために使用できます。

たとえば(純粋に架空の場合)、ChromeがCSS変数をサポートし、v40以降のすべてのChromeが古いVibration APIをサポートしていないことを知っているが、お使いのブラウザがv55であると主張し、両方の機能をサポートしているようであると、バストアップされます。 https://caniuse.com/ にすばやくアクセスすると、そのようなバージョンを検出するために使用できる多数の「喫煙銃」が提供されます/機能の相関。

-ms-browse CSSやMicrosoftブラウザーなど、1つまたは別のブラウザーのみがサポートする多くのWeb APIもあります。これは、基本的には「ブラウザを検出せず、上位互換性のために機能を検出する」というWeb開発者のアドバイスの逆です。両方を行うことで、なりすまし(JSとDOMの内部を変更する)が得意で、ブラウザーを使用している可能性がある場合を除き、リキャップは嘘つきを見つけることができますが、その時点ではできません。 /気にしません。

4
dandavis