3

facebook.com でスクリプトを試した後、数分間 facebook.com に接続できないことに気付きました。これは複数回発生したため、Facebook はユーザースクリプトを使用してコードをいじるのを好まないのではないかと思います。

スタック オーバーフローの質問Web サイトは、ユーザー スクリプトを実行しているかどうかを知ることができますか? Web サイトがスクリプトを検出できる複数の方法に答えます。

ここで、実行中のスクリプトを検出しないように Web サイトをだます方法を知りたいと思います。ユーザー スクリプトの HTML 変更が Web サイトでトリガーされるものを知る方法はありますか?

4

2 に答える 2

5

Firefox と Chrome の場合、検出を防ぐための特効薬はありません。これはプロセスであり技術です...

サイトがスクリプトを検出する3 つの主な方法は次のとおりです。

  1. AJAX リクエストの順序が間違っているか、頻度が高すぎます。

  2. ページのコード (HTML、グローバル JS、または CSS) の変更。

  3. 不自然なマウスまたはキーボードの動作。

「私がユーザースクリプトを実行しているかどうか、ウェブサイトは知ることができますか?」を参照してください。詳細については。

いくつかの対策:

  1. スクリプトが行う AJAX リクエストの場合:

    1. Wiresharkなどを使用して、通常の AJAX 呼び出しのトラフィックを分析します。同じ種類の呼び出しを同じ順序で送信するようにしてください。
    2. リクエストがページと同じヘッダーとデータを表示していることを確認してください。
    3. ページが通常よりも速く、またはユーザーが合理的にトリガーできるよりも速く AJAX 要求を送信しないでください。
    4. スクリプトのリクエストにランダムな遅延を追加して、タイミングが均一にならないようにすることを検討してください。
    5. ページのリクエストのフィールドが絶えず変化することに注意してください。正しい値を生成する方法を知っていることを確認してください。切って貼るだけじゃない。

  2. ページのコードに加えた変更の場合:
    ページは、独自の JavaScript を使用してこれらを完全にローカルで処理するか、ステータスまたはコード フラグメントをサーバーに送り返すこともできます。

    1. ページの JavaScript をブロックして置き換えます。NoScript、RequestPolicy、ファイアウォール、プロキシなどのツールを使用して JS をブロックできます。
      次に、Greasemonkey を使用して、ページの JS の編集済みバージョンを追加します。ページのすべての JS が無効になっている場合でも、Greasemonkey は実行されます。

    2. ページがステータス ホームを呼び出し、スクリプトの変更に応じてそのステータスが変化する場合は、それらのメッセージをインターセプトして置き換えます。(前の方法を使用した場合、これは必要ありません。) これを行うには、カスタム ファイアウォール、プロキシ、またはルーターが必要です。

  3. トリガーするイベント (マウス クリック、フィールドへの入力など) の場合:

    1. ページがこれをチェックする場合は、探しているものを指定してください。たとえば、イベントの代わりに、、、、シーケンスがclick必要になる場合がありmouseoverます。mousedownmouseupmouseout
    2. それでも不十分な場合は、ページのコードを変更する場合と同じ対策を講じます (JS を置き換え、ステータス メッセージをインターセプトします)。

重要!ユーザースクリプトを妨害しようとするサイトと戦っているというまれなイベントでは、それは戦争のようなものです
. ウェブマスターはあなたがしていることに適応することができ、環境は常に変化する可能性があります. したがって、そのようなサイトのスクリプト作成は進行中のプロセスです。

于 2012-04-25T13:05:54.690 に答える
2

スクリプトはユーザー側、つまりあなたの側で実行されます。したがって、サイトのサーバー コードは、ユーザーが何かを実行しているかどうかを認識できません。

ただし、次の 2 つの点に注意してください。

  1. サイトは、その環境を検査し、必要に応じて報告する、コンピューターで実行するスクリプトを提供できます。これらは、ほとんどの場合、サイト所有者がその環境に持ちたくない特定のスクリプトを検出することを目的としています。
  2. サイトの作成者は、リクエストを検査し、サイト提供のフォームまたは AJAX からの通常の通信と一致するパターンと一致しないかどうかを分析できます。キーが見つからないか、クエリでハードコードされた順序と一致しないキー、自動化クライアントを識別するヘッダー、ブラウザー ヘッダーの欠落など。人間のユーザーよりもはるかに速く自動的にリクエストを行う場合、スロットリングの制限に達することもこのカテゴリに適合するはずです。

それ以外の場合、まったく同じ応答を生成し、グローバルにアクセス可能な環境にトレースを残さない場合、サーバーまたはクライアント側のチェックでユーザースクリプトを使用しているかどうかをサイトが判断することは不可能です.

于 2012-04-25T11:25:53.283 に答える