アンチボットシステムがプロキシを検出する仕組み(技術的ディープダイブ)

現代のアンチボットシステムがプロキシの使用を検知する方法の包括的な技術分析:IPの評判、TLSの指紋、ブラウザの指紋、行動分析、および未検出を維持するための実証済みの対策.

アンチボットシステムがプロキシを検出する仕組み(技術的ディープダイブ)

現代のアンチボットシステムは、単純なIPブロックを超えて進化してきました。 今日のCloudflare、Akamai、PerimeterX(現 HUMAN)、DataDome などの検出プラットフォームは、TLS ハンドシェイクからマウスマイクロモーメントまですべてを調べる多層解析を展開しています。 これらのシステムは、正当なデータ収集パイプラインの構築、競争力のあるインテリジェンス操作の実行、または独自のウェブサイトの防衛をテストするために不可欠であるかどうかを正確に理解します。

この技術深層ダイブは、あらゆる主要な検出ベクターを解散し、基礎的なアルゴリズムを説明し、最も積極的なボット緩和システムを通過する要求を構築する方法を実証します。 開発者、セキュリティ研究者、またはデータエンジニアであっても、すぐに適用できる実用的な知識を残します。

倫理的なノート: この記事は、公に利用可能なデータ、セキュリティ調査、品質保証テストをスクレイピングし、あなた自身のインフラストラクチャを保護するなどの正当な目的のために意図されています。 常にrobots.txt、サービス利用規約、および適用されるデータ保護法を尊重します。

プロキシ検出アームズレース

ボット検出の歴史は、技術的腕のレースのように読みます。 2000年代初頭には、既知の悪いIPアドレスのリストを維持するためのボットをブロックします。 2010年、CAPTCHAsは標準チェックポイントとなりました。 2020年までに、クラウドフレアなどの企業は、1秒あたり45万個のHTTPリクエストを処理し、同時に何百もの信号を分析する機械学習モデルを使っています。

今日のアンチボットシステムは、 リスクスコアリングモデル. バイナリ許可/ブロックの決定を下すよりもむしろ、複数のレイヤー間で収集された数十個の信号に基づいてトラストスコアを割り当てます。 清潔な住宅用 IP の 0.2 を要求し、疑わしい TLS の指紋のための 0.3 を得ます、自然なマウスの動きのための 0.1 を失います、等。 累積スコアがしきい値に交差したら、システムはパッシブ監視からアクティブチャレンジ(CAPTCHA、JavaScriptパズル)、またはアウトライトブロックにエスカレートします。

これらの層を理解することは、検出力のあるシステムを構築する鍵です。 それぞれを切っていきましょう。

IP ベースの検出方法

IP分析は、ボット検出の最初の最速層を保持します。 クライアント側のインタラクションをゼロにし、サーバーがアプリケーションロジックの単一バイトを処理する前にリクエストを拒否することができます。

ASNの分類

すべてのIPアドレスは、 自動システム番号(ASN)ネットワーク演算子を識別する。 アンチボットシステムは、ASNをカテゴリに分類するデータベースを維持します。

ASNの分類
ASNタイプ事例紹介リスクレベル検出率
住宅ISPComcast、Vodafone、Rostelecom低い~5%
モバイルキャリアT-Mobile、Jio、メガフォン非常に低い~2%
商用ISPビジネス繊維、リースラインメディア~25%
データセンター/ホスティングAWS、Azure、DigitalOcean、Hetzner高い80% 以上
既知のプロキシ/VPNLuminati の範囲、NordVPN 出口クリティカル~95%

IP2Location、MaxMind、IPinfoなどのサービスでは、ASN分類データを提供します。 Cloudflareは、数百万ものウェブサイトのトラフィックを観察し、構築された独自の膨大なデータセットを使用します。

IPの評判データベース

ASNタイプを超えて、個々のIPが蓄積する 評判スコア. このスコアの要因:

  • 虐待の歴史 — このIPから以前のスパム、スクレイピング、または攻撃活動
  • 使用法の容積 — このIPが最近見つかる多くのユニークなウェブサイト
  • ポートスキャン履歴 — 検出された再認識動作
  • ブラックリストの存在 — スパムハウス、AbuseIPDB、プロジェクトハニーポットのリスト
  • サブネットの動作 — 同じ 24 ブロックの隣接する IP がフラグが付けられている場合、あなたの IP はペナルティも取得します。

これはまさに理由です 住宅のプロキシは、データセンターのプロキシをoutperform スクレーピングのため。 主要なISPの住宅IPは、高い信頼ベースラインから始まりますが、AWSのデータセンターIPは信頼の欠如から始まります。

地理配置の一貫性

アンチボットシステムは、IP の地理位置を他の信号と交差させます。 ブラウザの場合 Intl.DateTimeFormat().resolvedOptions().timeZone "America/New York" を報告しますが、IP がフランクフルトに地理的に配置され、その不一致はフラグを上げます。 同様に、 Accept-Language ヘッダーは IP の国に対してチェックされます。

プロキシハートの 位置のターゲティング 国、州、市でプロキシを選択し、IP ジオロケーションがブラウザの設定を正確に一致するようにします。

TLSの指紋:JA3およびJA4

TLSの指紋は最も強力な受動の検出方法の1つです。 JavaScript の実行は不要で、ヘッドレスブラウザでも動作します。

JA3の仕組み

クライアントが TLS 接続を開始すると、非常に最初のメッセージは クライアントこんにちは パケット。 このパケットは、TLSバージョン、暗号スイート、拡張機能、楕円曲線、ポイントフォーマットをサポートするクライアントの機能を広告しています。 ザ・オブ・ザ・ JA3アルゴリズム (Salesforce が開発) は、これらの値を連結し、MD5 ハッシュを生成します。

# JA3 string format:
# TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats
# Example: Chrome 120 on Windows
771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-21,29-23-24,0
# Example: Python requests (default)
771,4866-4867-4865-49196-49200-163-159-52393-52392-52394-49195-49199-162-158-49188-49192-49187-49191-49162-49172-49161-49171-57-56-51-50-49-159-158-57-56,0-23-65281-10-11-35-16-5-34-51-43-13-45-28-21,29-23-24-25-256-257,0

これらの2つのハッシュは完全に異なります。 アンチボットシステムは、各主要なブラウザのバージョン、オペレーティングシステム、および自動化ツールの既知のJA3ハッシュのデータベースを維持します。 User-Agent ヘッダを経由してChrome 120を要求する場合が、PythonリクエストをJA3ハッシュに提示すると、即座にフラグが付けられます。

JA4:次世代

JA4について (FoxIOが考案)JA3で複数の方法で改善 人間の読みやすい指紋を生成し、暗号スイートと拡張機能をソートし、変化を注文する感度を削減し、異なるTLS相のための別の指紋を追加します。 JA4スイートには以下が含まれます。

  • JA4について — TLSクライアントこんにちは指紋(改善されたJA3)
  • JA4Sシリーズ — TLSサーバーこんにちは指紋
  • JA4Hの特長 — HTTPクライアントの指紋(ヘッダーの注文、値)
  • JA4Xについて — X.509 証明書指紋
  • JA4Tについて — TCP指紋

これにより、あらゆる接続に対して包括的なネットワーク層のアイデンティティを作成します。

TLSの指紋を抜く

TLS の指紋検出を避けるためには、HTTP クライアントは偽装しているブラウザと同じ JA3/JA4 ハッシュを生成しなければなりません。 いくつかのアプローチが存在します。

# Python: Using curl_cffi to impersonate Chrome's TLS fingerprint
from curl_cffi import requests
session = requests.Session(impersonate="chrome120")
# Configure ProxyHat residential proxy
proxy = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
response = session.get(
    "https://target-site.com/data",
    proxies={"http": proxy, "https": proxy},
    headers={
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Accept-Encoding": "gzip, deflate, br",
        "Sec-Ch-Ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
        "Sec-Ch-Ua-Mobile": "?0",
        "Sec-Ch-Ua-Platform": '"Windows"',
    }
)
print(response.status_code)

Node.js ベースのプロジェクトについては、 Node.jsプロキシ統合ガイド TLS設定例

ブラウザの指紋

TLS指紋はネットワークレベルで動作しますが、ブラウザの指紋はJavaScript経由でレンダリングされたページ内で動作します。 アンチボットスクリプト(CloudflareやDataDomeなどのサービスによって注入される)は、独自のデバイスアイデンティティを構築するための信号の恒星を収集します。

キャンバスの指紋

HTML5 キャンバス API は、GPU、ドライバーバージョン、オペレーティングシステムによって異なるグラフィックスをレンダリングします。 アンチボットスクリプトは、特定の画像(通常、勾配と曲線のテキスト)を描画し、呼び出します toDataURL() ピクセルデータを抽出します。 結果のハッシュはハードウェア指紋として機能します。

// Simplified Canvas fingerprinting (what anti-bot scripts do)
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = '#069';
ctx.fillText('BotDetect,12345', 2, 15);
ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
ctx.fillText('BotDetect,12345', 4, 17);
const fingerprint = canvas.toDataURL();
// Hash this to get a consistent device identifier

PuppeteerやPlaywrightなどのヘッドレスブラウザは、実際のブラウザと異なるキャンバス指紋を生成します。 記法の徴候は下記のものを含んでいます:

  • すべてのインスタンス間でイデナティカル出力(実際のハードウェアは独自のバリエーションを生み出します)
  • GPU固有のレンダリングアーティファクトの欠如
  • 異なるアンチエイリアシング動作
  • 主張されたオペレーティング システムのための異常な壷のレンダリング

WebGL の指紋

WebGL の指紋抽出物 GPU 情報を介して WEBGL_debug_renderer_info エクステンション:

const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
// Example: "Google Inc. (NVIDIA)" / "ANGLE (NVIDIA, NVIDIA GeForce RTX 3080, OpenGL 4.5)"

User-Agent が macOS を主張する場合、WebGL は NVIDIA GPU (Mac は AMD または Apple Silicon GPU を使用します) を報告し、その矛盾はスプーフィングの強い信号です。

AudioContext の指紋

Web Audio API は、オーディオスタックのフローティングポイント処理の違いにより、異なるハードウェアで若干異なる出力を生成します。 アンチボットスクリプトは、オシレータを作成し、コンプレッサーを介して処理し、結果のバッファをハッシュします。 この指紋は、一貫して損なうのが非常に困難です。

Navigatorプロパティ分析

アンチボットスクリプトは数十人の検査を検査 navigator 矛盾のための特性:

  • navigator.webdriver — 設定 true 自動ブラウザで(最も明らかな)
  • navigator.plugins — 実際のChromeは特定のプラグインを持っています。 ヘッドレスChromeはしばしばどれも持っていません
  • navigator.languages — マッチしなければなりません Accept-Language ヘッダー
  • navigator.hardwareConcurrency — 実際の CPU コアカウントと一致すべき
  • navigator.deviceMemory — 貴重値(4, 8, 16 GB)でなければなりません。
  • navigator.platform — User-Agent OS の要求に一致しなければなりません

現代のアンチボットシステムもチェック Chrome DevToolsプロトコル 漏洩:自動Chromeインスタンスを公開 window.cdc_adoQpoasnfa76pfcZLmcfl_Array またはChromeDriverによって注入される同じような変数。

行動分析

行動分析は、最も洗練された検出層であり、敗北する最も困難です。 ユーザーがページを何度もやり取りする方法を監視し、ボットから人間を識別する行動プロファイルを構築します。

マウスの動きパターン

人間のマウスの動きは続きます Fittsの法律: 移動時間は、ターゲットの距離から幅比でロジカルに増加します。 反ボット システム トラック:

  • 速度カーブ — 人間は滑らかに加速し、加速します; ボットは即座に飛びます
  • ベーザー軌跡 — 人間のカーソルは、直線ではなく曲線のパスに従う
  • マイクロ補正 — ターゲット付近の小さなオーバーシュートと補正
  • アイドル期間 — 人間が一時停止して読む; ボットは継続的に実行します
  • イベントの頻度 — 人間は毎秒 ~60-100 の mousemove でき事を発生させます; 完全な間隔はオートメーションを示します

スクロールとインタラクションタイミング

アンチボットシステムも分析します。

  • スクロール速度 — 人間は、変数速度を瞬時にスクロールします。 ボットは、 window.scrollTo() 瞬間、均一なスクロールを生成する
  • 初めてのやりとり — ページの読み込みの直後にユーザーが関与させる方法
  • クリック精度 — ボットは正確な座標でクリックします。人間はわずかなオフセットのバリエーションを持っています
  • キーストロークダイナミクス — 速度、インターキー間隔、エラー補正パターンの入力
  • モバイルでのタッチイベント — 圧力、接触域、マルチタッチパターン

セッションレベルの行動

個々のページ相互作用を超えて、アンチボットシステムは、セッション全体を分析します。

  • ナビゲーションパターン — ボットは、系統的、深みのある順にページにアクセスする傾向にあります。 人間は周りを飛び回ります
  • リクエスト・アカデミー — 完全に規則的な間隔(例えば、要求間の正確に2.0秒)は赤い旗です
  • レファラーチェーン — ホームページを最初に訪問せずに深層ページに直接到着
  • リソースの読み込み — ボットは、CSS、画像、フォントの読み込みをスキップすることが多い
  • クッキーの動作 — いかなる遅延なく承諾または拒否する

HTTPヘッダ解析

HTTPヘッダは、ほとんどのデベロッパが実現し、アンチボットシステムが慎重にスクラッチするよりも多くの情報を運びます。

ヘッダーの順序の指紋

ブラウザは HTTP ヘッダーを一貫性のあるブラウザ固有の順序で送信します。 クローム、Firefox、Safariはそれぞれ異なるヘッダーの注文パターンを持っています。 アンチボットシステムは、期待するヘッダーの注文のための署名を維持します。

# Chrome 120 typical header order:
Host
Connection
sec-ch-ua
sec-ch-ua-mobile
sec-ch-ua-platform
Upgrade-Insecure-Requests
User-Agent
Accept
Sec-Fetch-Site
Sec-Fetch-Mode
Sec-Fetch-User
Sec-Fetch-Dest
Accept-Encoding
Accept-Language
# Python requests default order:
User-Agent
Accept-Encoding
Accept
Connection

違いはすぐに明らかです。 Python は 4 つのヘッダーをアルファベット順に送信します。Chrome は 14 つのヘッダーをと送ります sec-ch-ua 前のヘッダー User-Agent. .

不足しているか、または余分ヘッダー

現代のブラウザが送信 クライアントヒント ヘッダー (Sec-Ch-Ua, Sec-Ch-Ua-Mobile, Sec-Ch-Ua-Platform)と メタデータの取得 ヘッダー (Sec-Fetch-Site, Sec-Fetch-Mode, Sec-Fetch-Dest)。 ユーザーがChrome 120であると主張するが、これらのヘッダを欠落している場合、リクエストは非ブラウザトラフィックとして検知されます。

ヘッダーパターンを受け入れる

各ブラウザにはユニーク Accept 異なるリソースタイプのヘッダパターン。 HTMLページの場合、Chromeは送信します。

text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7

Firefox が送信される間:

text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8

これらのパターンは、要求されたブラウザを正確に一致しなければなりません。

JavaScriptチャレンジとCAPTCHAs

パッシブ検出が曖昧なスコアを生成するとき、アンチボットシステムがアクティブな課題にエスカレートします。

JavaScriptの実行チャレンジ

Cloudflareの回転木戸およびAkamaiのボット・マネージャーのようなサービスは要求のために正しく実行されなければならないJavaScriptを注入します。 これらのスクリプト:

  • JavaScriptエンジンは、要求されたブラウザ(Chrome用V8、Firefox用スパイダーモンキー)と一致することを確認します。
  • 特定のアルゴリズムの実行タイミングを測定する(エミュレーションを検出する)
  • グローバルスコープの自動化フレームワークアーティファクトの存在を確認する
  • すべてのブラウザ API を列挙し、その動作が期待にマッチすることを確認します。
  • ユーザーに見えない「honeypot」要素を作成するが、ボットによって相互作用

実証実験チャレンジ

一部のシステムでは、クライアントが数学的なパズル(暗号通貨マイニングに類似する)を解決するために必要な、計算済みの実証済みの作業課題を発行しています。 これは、単一のブラウザのために些細なように設計されているが、同時リクエスト数千を作るボットのために高価です。

CAPTCHAエスカレーション

CAPTCHAは最終的な防衛層です。 reCAPTCHA v3 や hCaptcha のようなモダン CAPTCHA は、常に視覚的な課題を表示しません。上記の同じ行動シグナルに基づいてスコアを割り当てます。 低いスコアは視覚挑戦をトリガーします。非常に低いスコアは堅いブロックで結果をもたらします。

異なるプロキシタイプが検出を繰り返し実行する方法

アンチボットの侵攻に関しては、すべてのプロキシが等しく作成されるわけではありません。 各タイプが検出ベクトルを渡って実行する方法は次のとおりです。

異なるプロキシタイプが検出を繰り返し実行する方法
検出方法データセンターのプロキシ住宅のプロキシモバイルプロキシ
IPの評判よくある質問まれにフラグが付けられるフラグが付けられない
ASNの分類ASNホスティング(リスクが高い)ISP ASN(低リスク)キャリア ASN(最も低いリスク)
ブラックリストのカバレッジ~60-70% 一覧〜5-10% リスト<2% リスト
ジオコンシスタンス限られた場所広域都市レベルのターゲティングキャリアベースの拠点
TLSの指紋クライアントに依存する*クライアントに依存する*クライアントに依存する*
ブラウザの指紋クライアントに依存する*クライアントに依存する*クライアントに依存する*
行動分析クライアントに依存する*クライアントに依存する*クライアントに依存する*
全体検出率~70~85%~5-15%~2~8%

*TLS、ブラウザの指紋、および行動信号は、プロキシタイプではなく、クライアントの実装に依存します。 しかし、住宅やモバイルIPは、より強い出発位置を与えます。

包括的な比較については、ガイドを参照してください 住宅対データセンター対モバイルプロキシ. .

主な洞察: プロキシタイプはあなたのIP層の信頼のスコアを決定しますが、あなたの全体的な検出の抵抗は得ることに依存します すべて レイヤー右: TLS、ヘッダ、指紋、動作。 デフォルトの Python リクエスト指紋を持つ住宅 IP はブロックされます。

対策とベストプラクティス

すべての検出層を理解しているので、これらを渡すシステムを構築する方法は次のとおりです。

1. きれいな住宅IPsから始めて下さい

使用条件 ProxyHatの住宅プロキシプール トラフィックが実際のISP割り当てられたアドレスから発信されるようにします。 戦略的にIPを回転:すべてのリクエスト(疑わしい)ではなく、自然なセッション境界で。

2. あなたのTLSの指紋に一致して下さい

実際のブラウザ TLS スタックを偽装するライブラリを使用します。 Python では、 curl_cffi または tls_client Chrome、Firefox、Safari JA3ハッシュを再現できます。 行くと、 utls ライブラリは同じ機能を提供します。

3. 一貫したヘッダーのプロフィールを維持して下さい

ターゲットブラウザに一致する完全なヘッダーセットを作成してください。 クライアントヒントとフェッチメタデータヘッダーを含める。 偽装しているブラウザでヘッダーの注文を一貫して保持します。

4. 現実的な指紋を実装する

ヘッドレスブラウザを使用する場合は、Puppeteer Stealth、Playwright Stealth、Multiloginなどの商用ソリューションなどのツールを使用して指紋スプーフィングを適用します。 キャンバス、WebGL、およびAudioContextの出力が要求されたハードウェアと一致していることを確認します。

5. ヒトライク行動を追加

リクエスト間で変数遅延(ディストリビューションではなく定数)を導入する。 ブラウザの制御、マウスの動きのシミュレート、スクロール、および読書停止。 CSS、画像、フォントを含むすべてのページリソースを読み込みます。

6. セッションを適切に管理

セッション内でリクエストを介したクッキーを維持します。 同意ダイアログを受け付けます。 深層ページをナビゲートする前にホームページをご覧ください。 セッション内で一貫したプロキシIPを使用して、次のセッションのために回転します。

完全検出防止設定例

上記のすべての対策を組み合わせて、生産準備の Python の例を示します。

from curl_cffi import requests
import random
import time
class AntiDetectionClient:
    """
    Production-grade HTTP client with anti-detection measures.
    Uses ProxyHat residential proxies + Chrome TLS impersonation.
    """
    PROXY_GATEWAY = "gate.proxyhat.com"
    PROXY_USER = "YOUR_USERNAME"
    PROXY_PASS = "YOUR_PASSWORD"
    # Realistic Chrome 120 headers (correct order matters)
    CHROME_HEADERS = {
        "sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": '"Windows"',
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-User": "?1",
        "Sec-Fetch-Dest": "document",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "en-US,en;q=0.9",
    }
    def __init__(self, session_id=None):
        self.session = requests.Session(impersonate="chrome120")
        self.session_id = session_id or self._generate_session_id()
        self._setup_proxy()
    def _generate_session_id(self):
        return f"session_{random.randint(100000, 999999)}"
    def _setup_proxy(self):
        # Use session-based sticky proxy for consistent IP within a session
        proxy_url = (
            f"http://{self.PROXY_USER}-session-{self.session_id}"
            f":{self.PROXY_PASS}@{self.PROXY_GATEWAY}:8080"
        )
        self.session.proxies = {"http": proxy_url, "https": proxy_url}
    def _human_delay(self, min_sec=1.0, max_sec=3.5):
        """Introduce variable delay mimicking human reading time."""
        delay = random.uniform(min_sec, max_sec)
        # Add occasional longer pauses (simulating reading)
        if random.random() < 0.15:
            delay += random.uniform(2.0, 5.0)
        time.sleep(delay)
    def get(self, url, **kwargs):
        """Make a GET request with full anti-detection measures."""
        headers = {**self.CHROME_HEADERS, **kwargs.pop("headers", {})}
        self._human_delay()
        response = self.session.get(url, headers=headers, **kwargs)
        return response
    def scrape_pages(self, urls):
        """Scrape multiple pages with session management."""
        results = []
        for i, url in enumerate(urls):
            # Rotate session every 10-20 requests
            if i > 0 and i % random.randint(10, 20) == 0:
                self.session_id = self._generate_session_id()
                self._setup_proxy()
            response = self.get(url)
            results.append({
                "url": url,
                "status": response.status_code,
                "html": response.text
            })
        return results
# Usage
client = AntiDetectionClient()
response = client.get("https://target-site.com/products")
print(f"Status: {response.status_code}")

Go の実装では、 ProxyHat ゴー SDK 組み込みのセッション管理とプロキシの回転を提供します。 お問い合わせ プロキシガイド 追加のパターンのために。

大規模なスクレイピング操作のために、 ウェブスクレイピングプロキシガイド インフラアーキテクチャとプール管理戦略をカバーしています。

ボット検出の未来

検出の風景は急速に進化し続けています。 いくつかの新興技術は、今後数年で腕のレースを再構成します。

エッジでの機械学習

CloudflareとAkamaiは、CDNエッジノードで直接MLモデルを展開し、秒からミリ秒までの検出遅延を減らします。 これらのモデルは、事実の後にバッチ分析ではなく、リアルタイムで行動信号を処理します。

デバイス認証 API

Googleの Web環境の完全性 (WEI) 提案とAppleの提案 プライベートアクセストークン ウェブサイトが要求が本物、変更されていないデバイスから来ていることを確認することを目指しています。 広く採用されると、ブラウザの自動化が根本的に困難になります。

ネットワークレベルのテレメトリー

TCP/IP の積み重ねの指紋(のような用具によって) p0fの) は低レベルのパケット特性からオペレーティング システムを識別できます: TTL 値、ウィンドウ サイズ、TCP オプションの注文。 JA4T(TCPフィンガープリント)と組み合わせることで、純粋なHTTPレベルのスプーフィングが対処できないレイヤーを生成します。

コラボレーション脅威インテリジェンス

アンチボットベンダーは、脅威インテリジェンスをますます共有しています。 1つのCloudflareサイトにブロックされたIPは、すべての30 +百万のCloudflareサイトにフラグが付けられます。 これにより、IP の評判は、高品質の、倫理的に供給された住宅のプロキシプールの必要性を再構築する、これまで以上に相当します。

先見: 反検出の未来は、個々のチェックを打ち破るのではなく、あらゆる信号層の全体的な一貫性を維持することです。 最善のアプローチは、偽造の信号をしようとではなく、正当なツール(実際の住宅のプロキシや実際のブラウザエンジンのような)を使用することです。

キーテイクアウト

  • 多層検出 — 現代のアンチボットシステムは、IPの評判、TLSの指紋、ブラウザの指紋、HTTPヘッダー、および行動パターンを同時に分析します。 レイヤーごとにアドレスを付ける必要があります。
  • IPのタイプは基礎的です — 実際のISPからの住宅のプロキシは、最も強力なベースラインの信頼スコアを提供します。 データセンターIPは、厳しい信頼の欠如から始まります。
  • TLS指紋は重要な — JA3/JA4 フィンガープリントは、任意のアプリケーションロジックが実行される前に、非常に最初のパケットから HTTP クライアントを識別できます。 偽装ライブラリを使う curl_cffi. .
  • 一貫性は王です — すべての信号は、ユーザエージェント、ヘッダ、TLS 指紋、キャンバス/ WebGL 出力、タイムゾーン、言語が同じ話を全て伝えなければならない。
  • 行動問題のほとんど — 完全な技術セットアップ、ロボットのタイミングおよび運行パターンによって、高度システムを引き起こします。 人間のような遅延、セッション管理、および自然ナビゲーションの流れを紹介する。
  • 偽物ではなく、実際のツールを使用する — シグナルのスプーフィングではなく、実際のブラウザエンジン(Playwright/Puppeteer)を使用して、ステルスプラグインと本物の住宅用IPを使用します。 プロキシハート. .
  • 倫理的滞在 — レート制限、robots.txt、サービス利用規約を尊重します。 正当なデータ収集は積極的な反検出を必要としません;それは要求します スマートでよく設計されたスクレイピングプラクティス. .

よくある質問

アンチボットシステムは、住宅用プロキシを検出できますか?

アンチボットシステムは、いくつかの住宅のプロキシを検出することができます, 特に未使用のプールから貧しい評判のスコア. しかしながら、プロキシハートのようなプロバイダから高品質の住宅用プロキシは、実際のISPから IP をソースし、IP と ASN レベルの定期的なユーザートラフィックと同一に見えるため、検出するのが非常に困難です。

JA3の指紋とプロキシを露出する方法は何ですか?

JA3は、クライアントHelloパケットに基づいてTLSクライアントの指紋を作成する方法です。 TLSバージョン、暗号スイート、エクステンション、楕円曲線、ポイントフォーマットをキャプチャします。 HTTP クライアントが既知の自動化ツール(デフォルトの Python リクエストやヘッドレス Chrome など)にマッチする JA3 ハッシュを生成する場合、プロキシを使用する場合でも、アンチボット システムがフラグを立てることができます。

IP ベースの検出とは異なるブラウザの指紋方法は?

IP ベースの検出は、要求(ASN タイプ、評判、ブラックリスト)のネットワークの起源を分析し、ブラウザの指紋は、クライアント環境自体を検査します。キャンバスレンダリング、WebGL 機能、AudioContext 出力、フォントのインストール、画面解像度、およびナビゲーター特性。 ブラウザの指紋は、IPアドレスがクリーンな場合でも自動化を識別できます。

ボット検出における行動分析とは?

Behavioral 分析は、ユーザーがページを時間とともにやり取りする方法を監視します。 マウスの動きを追跡するアンチボット システム, スクロール速度, キーストロークのダイナミクス, クリックパターン, ページナビゲーションシーケンス. ボットは、通常、非自然に均一なタイミング、ゼロマウスの動き、インスタントスクロール、そして予測可能なナビゲーションパスをヒトが作り出すことはありません。

アンチボット検出を回避するための最良のプロキシタイプは何ですか?

住宅用プロキシは、実際のISP-assigned IPアドレスを使用するため、検出に最も強い抵抗を提供します。 適切なTLS指紋管理、現実的なブラウザの指紋、および人間のような行動パターンと組み合わせることで、住宅のプロキシは、Akamai、Cloudflare、PerimeterXなどの高度なアンチボットシステムでも確実に渡すことができます。

始める準備はできましたか?

AIフィルタリングで148か国以上、5,000万以上のレジデンシャルIPにアクセス。

料金を見るレジデンシャルプロキシ
← ブログに戻る