私はwgetを使用してeコマースサイトをミラーリングしました。このサイトはCloudflareを使用してWebトラフィックを処理しているようです。
興味深いのは、90%程度のミラーリングが行われた後、wgetが多くのエラーメッセージを生成/受信し始めたことです。次に、通常のブラウザでサイトを開こうとしたが、403エラーとCloudflareからのメッセージ「リクエストがブロックされました」で迎えられた。 OK、まあまあ、彼らはおそらく人々が彼らから150万ページをダウンロードすることを望んでいないでしょう(それは私が当時行っていたものです)。
しかしながら
Cloudflareは、wgetを実行するマシンのフィンガープリントをなんとかして管理し、Torを介して自分のマシンを識別できるようにしましたか? Webサーバーに接続したときに、wgetはどのくらいの情報を明らかにしますか?
そのハードウェアは非常に一般的なMacbook Pro 15インチなので、特別なものはありません。
Torブラウザは、デフォルト設定を使用して実行されています。
CloudflareはTorユーザーにとって悪名高いです。 Cloudflareがホストするサイトのほとんどは、Torを介してアクセスすると、CloudflareがTorユーザーをリスクの高いユーザーとして評価するため、かなりパッチ状になります。
スクレイピングまたはサイト管理者がトリガーした "I'm attack" " モードがトリガーされた可能性があります。これは、アクティブな間、Cloudflareの警戒を強化します。
WgetとTorのブラウザーエラーが実際に相互依存していることは確かですか?この可能性を排除するために何をしましたか?
Wgetは、IPとユーザーエージェント文字列を含むGETリクエストを送信します。オーバーライドしない限り、デフォルトのフォームは次のとおりです。
User-Agent: Wget/version (os)
User-Agent: Wget/1.19.5 (linux-gnu)
Wgetは、ハードウェアベースのフィンガープリントのベクターであるJavaScriptをサポートしていません。
Cloudflareは、フラグ付きのWebスクラッパーで共有IPに基づいて非Torブラウザを一時的にブロックした可能性があります。将来のブロックは、何らかの理由で、IPではなく、この最初のブラウザーのフィンガープリントに基づいて適用されます。ブロックは2番目のデバイスに影響を与えません。そのフィンガープリントが最初のデバイスと一致しないためです。これは単なる理論です。それは不器用なシステムですが、2番目のデバイスが影響を受けない理由を説明します。
中間ステップなしでWgetクライアントをTorブラウザに結び付ける確実な方法はありません。実験として、再度ブロックしてみますが、その直後に、Wgetに使用されているのと同じIPを持つ通常のブラウザーではなく、Torブラウザーで接続してみてください。
偶然の一致が悪いのではないかと思いますが、もしあなたの懸念が非常に重要であるなら、確かな方法があります。 5つのクライアントすべてから送信されたHTTPリクエストで、ターゲットサーバーに送信した情報を確認します。
万一、Torユーザーに対して効果的なハードウェアベースの検出が行われている場合、Tor以外のブラウザーとTorブラウザー間の JavaScriptフィンガープリント に基づいている可能性があります。 Wgetは、指紋を収集するためにIPにフラグを立てる以上の責任はありません。
これを行うには、おそらくHTTPSトラフィックを復号化する必要があります。 Torからのリクエストでこれを行ったことはありませんが、それは可能です。