0

思考実験の一環として、ブラウザ環境で受信して使用するためだけにデータを提供するサーバーに希望があるかどうかを確認しようとしています。

明らかに、その情報がソース コードで送信された場合、または通常の HTTP 手段を介して送信された場合、ボットはこれを取得できます。これまでのところ、非常に簡単です。

しかし、情報が Websocket メッセージとして代わりにサーバーによって送信された場合はどうでしょうか。これは、ブラウザー環境内の対応する (おそらく認証された) JavaScript によってのみ受信可能であり、ボットによる傍受を排除するのではないでしょうか?

(これは、ボットにはクライアント環境がなく、本質的に、ユーザーになりすまして cURL などを介してサイトを呼び出す悪意のあるサーバー側スクリプトであるという私の仮定に基づいています)。

この質問を別の言い方をすると、次のようになります。Web ソケットの Web 実装では、メッセージの受信は常にクライアント環境 (つまり JS) によって行われますか?

4

2 に答える 2

1

Websocket についてはお答えできませんが、十分にやる気のある攻撃者は、必要な環境をエミュレートする方法を見つけます。このコンテンツを ajax を介してロードすることで、カジュアル ボットを排除できます。robots.txt を使用して、行儀の良いボットを排除できます。

于 2013-10-05T11:08:29.473 に答える
1

WebSocket を使用しても違いはありません。次の事実から逃れることはできません。標準ブラウザとまったく同じようにサーバーに見えて動作する、ブラウザ以外のクライアントをいつでも作成できます。

私は偽造することができます: あなたが読むかもしれない任意の HTTP ヘッダー (ブラウザー ベンダーなど)。originヘッダーも役に立ちません (私はそれを偽造することができます) 。クッキーも同様です。私はそれらを読み、それを返します。

強力なキャプチャでサイトを保護することで逃げ出し、キャプチャが解決された後にのみ Cookie を設定する可能性があります。それは、ボットが解決できないキャプチャに依存します..

于 2013-10-05T18:06:25.250 に答える