Webドライバーの検出は、ブラウザが自動制御下にあるかどうかを識別するプロセスです。 最もよく知られたシグナルは、navigator.webdriver プロパティです。 Web サイトでは、ブラウザ環境、ネットワーク接続、セッション履歴、ページ上のアクティビティを検査する場合もあります。
検出結果がブロックにつながる必要はありません。 Web サイトでは、セッションの許可、監視、レート制限の適用、検証の要求、またはアクティビティのレビューを行うことができます。 多くの場合、応答は訪問者が何をしようとしているかによって異なります。
自動制御は虐待の証拠にはなりません。 テスト システム、モニタリング サービス、アクセシビリティ ツール、承認されたビジネス ワークフローはすべて ブラウザの自動化 を使用する場合があります。 重要な問題は、そのアクティビティが Web サイトのその部分にとって予期されているか、承認されているか、安全であるかどうかです。
Webドライバーの検出 とは何ですか?
Webドライバーの検出 は、ブラウザが WebDriver または関連する自動化環境を通じて制御されているという証拠を探します。
WebDriver は、ソフトウェアにブラウザを制御する標準的な方法を提供します。 スクリプトは、ページを開き、要素を検索し、テキストを入力し、ボタンをクリックし、ウィンドウを管理し、結果を読み取ることができます。 Selenium はほとんどの人が WebDriver を連想するツールですが、この 2 つの用語は同じ意味ではありません。
WebDriver はブラウザ制御の標準です。 Selenium は、WebDriver を使用した自動化プロジェクトです。 ChromeDriver、GeckoDriver、SafariDriver、および EdgeDriver は、個々のブラウザー用の実装です。
ドライバーは通常、ページの外で実行され、オートメーション クライアントとブラウザーの間でコマンドを渡します。 Web サイトは、ドライバーの実行可能ファイル自体を検査するのではなく、ブラウザーの状態とその結果の信号を監視します。
Webドライバーの検出 は、狭い技術的な質問に答えます。
このブラウザは自動制御されているように見えますか?
認可とリスクは別の問題です。 テスト ワークフローと不正なスクリプトは両方とも自動化シグナルを生成する可能性があります。 Web サイトには、それらを区別するためにリクエスト、セッション、アカウント、ビジネス コンテキストが必要です。
WebDriver の証拠が、より広範な ボットの検出 決定における 1 つの入力となることが多いのはこのためです。
WebDriver はどのように機能しますか?
基本的な WebDriver ワークフローは 4 つの部分で構成されます。
- 自動化スクリプトはタスクを定義します。
スクリプトはブラウザに、URL を開く、フォームを検索する、データを入力する、または要素が表示されるかどうかを確認するように要求する場合があります。
- WebDriver クライアントはコマンドを送信します。
クライアント ライブラリは、Python、Java、JavaScript、C#、またはその他のサポートされている言語からの命令を WebDriver コマンドに変換します。
- ブラウザドライバーがコマンドを受け取ります。
ChromeDriver は Chrome または Chromium を制御します。 GeckoDriver は Firefox を制御します。 他のブラウザーは独自のドライバー実装を提供します。
- ブラウザがアクションを実行します。
ブラウザーはページをロードし、情報を自動化スクリプトに返します。
W3C WebDriver 仕様 では、WebDriver をブラウザーのリモート コントロール インターフェイスとして定義しています。 また、ブラウザがリモート制御されているときにアクティブになるフラグも定義します。
ブラウザは、navigator.webdriver を通じてこの状態を Web ページに公開します。 MDN によると、このプロパティはブラウザが自動化によって制御されているかどうかを示します。
この動作は意図的なものです。 これにより、ページが自動ブラウザを認識し、必要に応じて別のコード パスを使用するための標準的な方法が提供されます。 たとえば、テスト環境ではアニメーションが無効になったり、追加の診断情報が収集されたりする場合があります。
このプロパティは自動化インターフェイスの一部であり、偶発的なリークではありません。
Webドライバーの検出 はどのように機能しますか?
一般的なセットアップでは、ページ JavaScript がブラウザーの状態を読み取り、関連する信号の小さなセットを収集します。 ページはそれらの観察結果をサーバーに送信します。 リスク システムは、それらをリクエスト、セッション、試行されたアクションと比較します。 次に、ポリシーによって、リクエストを許可、監視、チャレンジ、制限、またはブロックするかどうかが決定されます。
最も単純なチェックは、navigator.webdriver を読み取ります。 true の値は、ブラウザがオートメーション コントロールがアクティブであることを報告することを意味します。
それは有用な証拠ですが、その意味は限られています。 このプロパティはコントロールの状態のみを報告します。 スクリプトの所有者やタスクの目的は特定されません。
公開記事のリクエストと支払いの変更を同じ基準で判断すべきではありません。 最初のアクションは直接的な影響をほとんど与えません。 2 つ目では、ユーザーがブラウザを使用している場合でも、より強力なチェックが必要になる場合があります。
最新の検出では、いくつかのレイヤーが考慮される場合があります。
標準の自動化状態
navigator.webdriver は、最も直接的な WebDriver シグナルです。 安くて分かりやすいので調べられます。
内部テスト スイートは、未承認のスクリプトと同じ値を生成する可能性があります。 したがって、Web サイトは応答を選択する前に、より多くのコンテキストが必要になります。
ブラウザとドライバーの証拠
オートメーション環境は、通常のブラウザ セッションとは小さな点で異なる場合があります。 これらの違いは、ブラウザーのプロパティ、オブジェクト構造、権限、起動設定、またはランタイム環境に現れる可能性があります。
ブラウザ、ドライバー、自動化フレームワークが更新されると、特定のアーティファクトが変更されます。 1 つの古いアーティファクトを中心に構築されたルールが機能しなくなったり、正規のブラウザーにフラグを立て始めたりする可能性があります。
実稼働検出システムには定期的なテストが必要です。 疑わしい変数の永続的なリストに依存することはできません。
ブラウザの一貫性
Web サイトでは、ブラウザーが主張する内容と観察できる内容を比較する場合があります。
たとえば、ユーザー エージェント文字列は 1 つのブラウザまたはオペレーティング システムを要求し、他の API は別の環境を提案する場合があります。 画面構成、グラフィックス結果、許可状態、または利用可能な機能が、宣言されたプラットフォームに適合しない可能性があります。
ユーザー エージェント文字列を変更しても、完全なブラウザは再現されません。 ユーザーエージェントのスプーフィング により、宣言されたクライアント情報が変更されます。 レンダリング エンジン、グラフィックス環境、ネットワーク スタック、Cookie、またはセッション履歴は自動的に変更されません。
グラフィック データは別の比較点を提供します。 WebGL フィンガープリント は、報告されたブラウザ、オペレーティング システム、およびグラフィック環境が一緒になって意味があるかどうかをシステムがチェックするのに役立ちます。
矛盾があると不確実性が高まります。 仮想マシン、リモート デスクトップ、プライバシー ツール、ブラウザ拡張機能、および珍しいハードウェアによっても、珍しい組み合わせが生成される場合があります。
ネットワークとリクエストのコンテキスト
ページがブラウザーのプロパティを読み取る前後でも検出を継続できます。
Web サイトでは次のことを考慮する必要があります。
- IPアドレス とネットワーク所有者
- リクエストの頻度
- ヘッダーの一貫性
- リクエストされたエンドポイント
- ナビゲーション順序
- TLS と HTTP の特性
- 同じセッションからの以前のリクエスト
これらは、厳密な意味では WebDriver 信号ではありません。 これらは、より広範な交通およびリスク評価に属します。
たとえば、TLSフィンガープリンティング は、ネットワーク ハンドシェイクと要求されたブラウザーを比較するのに役立ちます。 結果によってコンテキストが追加されますが、それ自体ではリクエストの目的を特定できません。
セッションと動作
最も強力な証拠のいくつかは時間の経過とともに現れます。
プラットフォームは、繰り返されるログイン失敗、アカウント作成量、チェックアウトアクティビティ、ナビゲーション順序、セッション間の変更を検査する場合があります。 その意味はワークフロー全体から生まれます。
公開記事に対する 10 件のリクエストは無害である可能性があります。 異なるアカウントに対するログイン試行が 10 回失敗した場合は、より懸念されます。
人間の行動に関する単純な考えは信頼できません。 ユーザーは素早くクリックできます。 自動化には遅延が含まれる場合があります。 アクセシビリティ ツールは、通常とは異なるインタラクション パターンを作成する場合があります。 有用なモデルは、アクション、アカウント、および起こり得る損害を考慮します。
Webドライバーの検出ではどのような信号が使用されますか?
Webドライバーの検出 は、多くの場合、1 つの標準プロパティから始まります。 より広範な自動化検出では、複数の信号グループを使用できます。
標準のブラウザシグナル
例としては次のものが挙げられます。
navigator.webdriver- ブラウザが自動化状態を報告しました
- オートメーション関連のランタイム設定
これらの信号は、ブラウザが自動制御下にあることを示す可能性があります。 現段階では意図は不明。
ランタイム信号
例としては次のものが挙げられます。
- ドライバー関連のブラウザーの違い
- 変更されたブラウザオブジェクト
- 異常なプロパティ構造
- 予期しない権限の状態
- ブラウザのバージョンと利用可能なAPIの違い
これらの信号により、計測環境が明らかになる可能性があります。 これらの値は、ブラウザまたはドライバーの更新後に変更される可能性があります。
環境の一貫性
例としては次のものが挙げられます。
- ユーザーエージェント文字列とブラウザ機能契約
- オペレーティング システムとグラフィックスの契約
- 画面と入力機能
- ブラウザのバージョンとAPIのサポート
- ヘッド付きランタイムとヘッドレス ランタイムの違い
ブラウザ環境には多くの接続部分があるため、整合性チェックは便利です。 検出ルールには、一般的ではないが正当な設定を行う余地がまだ必要です。
ネットワークおよびリクエスト信号
例としては次のものが挙げられます。
- IPレピュテーション
- ASN とネットワークの種類
- TLSの特徴
- HTTPヘッダー
- リクエストレート
- エンドポイントシーケンス
これらの信号は接続とトラフィック パターンを表します。 これらは WebDriver に固有のものではありません。
セッションとアカウントのシグナル
例としては次のものが挙げられます。
- Cookie とセッションの継続性
- ログイン履歴
- 失敗した試行
- アカウントの年齢
- 繰り返されるアクション
- トランザクション速度
- 訪問間の変化
これらのシグナルは、ブラウザー単独ではなく、プラットフォームがアクティビティのリスクを判断するのに役立ちます。
信頼できる決定は、独立した信号間の一致に依存します。 ブラウザーのフラグ、ネットワーク値、または動作パターンがすべての決定を伝えるべきではありません。
ウェブサイトで Webドライバーの検出 が使用されるのはなぜですか?
WebDriver は、ほとんど手作業で同じアクションを何度も実行できます。 これはテストに役立ちます。 また、有害な活動の規模が増大する可能性もあります。
ウェブサイトは、以下を保護するときに Webドライバーの検出 を使用する場合があります。
- クレデンシャルスタッフィングによるログインページ
- 偽のアカウント作成によるサインアップフォーム
- スパムからのコメントフォーム
- カードテストからのチェックアウトフロー
- チケットや製品の発売を自動購入から保護すること
- 偽クリックによる広告システム
- 無許可の収集から公開コンテンツを保護すること
- 過剰または不正なリクエストによる API
リスクは行動とその影響から生じます。 自動化は配信方法にすぎません。
同じテクノロジーが正当な作業をサポートします。 Selenium は、回帰テストやブラウザの互換性チェックに広く使用されています。 監視サービスは、重要なフローがまだ機能していることを確認するページを開く場合があります。 内部チームは、レポートのダウンロードや反復的なデータ入力を自動化できます。 適切な API が存在しない場合、承認されたパートナーはブラウザの自動化を使用できます。
可能であれば、承認された自動化では、公式 API、サービス アカウント、文書化されたクローラー ID、または許可リストを使用する必要があります。 また、明確な所有者、定義された権限、適切なレート制限、有用なログも必要です。
Webドライバーの検出 と関連概念
ブラウザとトラフィック分析のさまざまな部分を説明する関連用語がいくつかあります。
ブラウザの自動化の検出
Webドライバーの検出は、ブラウザの自動化検出の一部です。
Webドライバーの検出 は、ブラウザが WebDriver を通じて制御されているように見えるかどうかを尋ねます。 ブラウザの自動化検出では、ソフトウェアがサポートされている制御チャネルを通じてブラウザを制御しているように見えるかどうかを確認します。
Playwright と Puppeteer はブラウザの自動化 ツールですが、Selenium WebDriver と同一であると説明すべきではありません。 それらの制御方法はブラウザーとランタイムによって異なります。 Chromium では、通常、Chrome DevTools プロトコルを通じて通信します。
navigator.webdriver のみをチェックするウェブサイトは、ブラウザの自動化 のすべての形式ではなく、1 つのシグナルをチェックしています。
ヘッドレスブラウザの検出
ヘッドレス ブラウザは、通常表示されるブラウザ ウィンドウなしで実行されます。 WebDriver はブラウザを制御する方法です。
2 つの概念は重複する場合があります。 WebDriver セッションはヘッドレス モードで実行できます。 表示されているブラウザ ウィンドウで実行することもできます。
ヘッドレス ブラウザの検出では、レンダリング動作、ウィンドウ プロパティ、グラフィック出力、または欠落しているブラウザ機能を検査できます。 これらのチェックはすべて WebDriver チェックではありません。
ヘッドレス モードは、継続的インテグレーション、自動テスト、監視、スケジュールされたタスクで一般的です。
ボットの検出
Webドライバーの検出は、技術的な制御状態に焦点を当てています。
ボットの検出の範囲はさらに広くなります。 以下を組み合わせることができます:
- ブラウザの自動化の証拠
- ネットワークの評判
- リクエストパターン
- セッション履歴
- アカウントアクティビティ
- 行動シグナル
- 事業リスク
ボットの検出 システムでは WebDriver の証拠が見つからず、トラフィックが自動化されたものとして分類される場合があります。 また、承認された自動化を認識し、セッションを許可することもあります。
検出により証拠が特定されます。 それをどうするかはポリシーによって決まります。
ブラウザのフィンガープリンティング
ブラウザのフィンガープリンティングは、ブラウザとデバイスの特性を収集します。 結果は、識別、整合性チェック、不正防止、分析、または追跡に使用される場合があります。
Webドライバーの検出 では指紋情報を使用できますが、目的は異なります。 自動制御が存在するかどうかを尋ねます。
セッションが自動化されている間は、指紋が普通に見えることがあります。 珍しい指紋は実在の人物のものである可能性があります。 より広いコンテキストによって、結果がどの程度の重みに値するかが決まります。
Webドライバーの検出 は誤検知を生成する可能性がありますか?
誤検知は、正当なアクティビティが有害な自動化として扱われる場合に発生します。 誤検知は、不正な自動化がチェックに合格した場合に発生します。
誤検知は次のような影響を与える可能性があります。
- QAおよび開発チーム
- 監視システム
- プライバシー重視のブラウザ
- アクセシビリティ ソフトウェア
- リモートデスクトップユーザー
- 仮想マシン
- エンタープライズブラウザのセットアップ
- 新しいブラウザーまたは珍しいバージョンのブラウザー
技術的な観察は正しくても、政策決定が間違っている場合があります。 システムは WebDriver コントロールを認識し、承認や目的を確認せずにタスクが悪用されていると判断する場合があります。
公開ページの読み取りには、監視または適切なレート制限のみが必要な場合があります。 支払いの詳細を変更するには、より強力な認証が必要になる場合があります。 影響の大きいアクションには、より厳格なしきい値とより良いリカバリ パスが必要です。
チームはブロック、課題、ユーザーからの苦情、ブラウザの更新の影響を確認する必要があります。 また、承認された自動化のための安定したアクセス方法も提供する必要があります。
Webドライバーの検出 とブラウザ プロファイル
ブラウザ プロファイルは、ブラウザのデータと設定を別の環境に保持します。 特定のワークフローの Cookie、ストレージ、ログイン状態、プロキシ設定、およびフィンガープリント構成を保存できます。
これにより、承認された自動化を整理しやすくなります。 これにより、偶発的なセッションの重複が減り、チームの所有権を明確に保つことができます。
MoreLogin を使用すると、ユーザーはローカル API を通じて ブラウザ プロファイル を開始できます。 ローカル Selenium ワークフローの場合、起動結果によりデバッグ ポートと一致する WebDriver パスが提供されます。 公式の Selenium オートメーション サンプル に示されているように、開発者はこれらの詳細を使用して Selenium を実行プロファイルに接続できます。
プロファイルは、別の Web サイトがセッションをどのように分類するかを決定するものではありません。 権限、タスクの頻度、アカウント履歴、プラットフォーム ルールも結果に影響します。
複数のアカウント環境を管理するチームは、マルチアカウント ブラウザ を使用して、再利用可能なプロファイルを整理し、セッションを分離し、チームのアクセスを制御できます。 許可、ロギング、レート制限、人間によるレビューは引き続きワークフローの一部です。
重要なポイント
- WebDriver はブラウザを制御するための標準インターフェイスです。
- Webドライバーの検出 は、自動化されたブラウザ制御の証拠を探します。
navigator.webdriverは、最もよく知られた標準信号です。- ブラウザ、ネットワーク、セッション、ビジネス コンテキストが最終的な決定に影響します。
- 承認された自動化には、明確な権限、所有権、および制限が必要です。
- ブラウザー プロファイルは自動化環境を整理しますが、Web サイトが自動化環境をどのように分類するかは保証されません。
Webドライバーの検出に関するよくある質問
Webドライバーの検出 とは簡単に言うと何ですか?
Webドライバーの検出 は、ソフトウェアが WebDriver を通じてブラウザを制御しているかどうかをチェックします。 Web サイトは navigator.webdriver を読み取り、他のブラウザーまたはセッションの信号を検査する場合があります。 その結果は、Web サイトがアクションを許可、監視、異議申し立て、制限、またはブロックするかどうかを決定するのに役立ちます。
navigator.webdriver とはどういう意味ですか?
navigator.webdriver は、ページが読み取りはできますが書き込みはできないブラウザ プロパティです。 これは WebDriver 標準によって定義され、自動化制御がアクティブかどうかを報告します。 このプロパティは自動化の目的を説明しません。
Web サイトは Selenium WebDriver を検出できますか?
はい。 Web サイトは、標準の WebDriver の状態と、自動化されたブラウザ環境のその他の兆候をチェックできます。 検出方法は Web サイトごとに異なり、ブラウザやドライバーが更新されると変化します。 Selenium 関連の証拠を見つけても、その活動が承認されるかどうかは確立されません。
WebDriver は Selenium と同じですか?
いいえ。 WebDriver は、ブラウザ制御用の標準インターフェイスおよびプロトコルです。 Selenium は、WebDriver を使用した自動化プロジェクトです。 Selenium は、開発者がブラウザの自動化を作成および実行するのに役立つ言語バインディングとツールも提供します。
Playwright と Puppeteer WebDriver ツールですか?
Playwright と Puppeteer はブラウザの自動化 ツールですが、Selenium WebDriver の別名ではありません。 制御方法はブラウザや環境によって異なります。 Chromium では、通常、Chrome DevTools プロトコルを通じて通信します。
ヘッドレス ブラウザは常に WebDriver によって制御されますか?
いいえ。 headless は、通常の表示ウィンドウなしでブラウザがどのように実行されるかを説明します。 WebDriver はブラウザ制御インターフェイスを記述します。 WebDriver セッションはヘッド付きまたはヘッドレスにすることができます。 他の自動化ツールもブラウザーをヘッドレス モードで実行できます。
navigator.webdriver は、訪問者が悪意のあるボットであることを証明しますか?
いいえ。 これは、ブラウザーがアクティブなオートメーション制御を報告していることを示しています。 プロパティは、承認、意図、またはビジネスリスクを確立できません。 自動化されたテスト、監視、内部ワークフローは、不正なスクリプトと同じ価値を生み出す可能性があります。
ブラウザ プロファイルは Webドライバーの検出を妨げていますか?
すべての Web サイトからの特定の結果を保証できるブラウザー プロファイルはありません。 プロファイルでは、ブラウザのストレージ、設定、セッション、およびプロキシ構成を分離できます。 各 Web サイトは依然として、監視するアクティビティに独自の検出方法とポリシーを適用しています。
ブラウザの自動化ワークフローを整理整頓する
Webドライバーの検出 は、コントロール、ID、動作を別個のレイヤーとして扱うと理解しやすくなります。 有効なテストの一部としてブラウザを自動化できます。 使い慣れたブラウザ環境でも、有害なアクションが実行される可能性があります。
承認された作業の場合は、明確なタスクと定義された権限から始めます。 セッションを分離し、有用なログを記録し、適切な制限を設定し、影響の大きいアクションをレビューします。 MoreLogin ブラウザ プロファイルは、ワークフローに関するルールや責任を置き換えることなく、その環境を整理するのに役立ちます。

JP
