2012-03-05 9 views
2

私は非常に強力な保護クラス "BlockIp"を書いています.IPでブラックリストを使用でき、奇妙なIP構成を検出してプロキシをブロックできます。それが見つかったら、訪問者とそれがブロックされている理由と何をしようとしているのか(1日に1回)詳細なメールが届きます。これは、私が過去にこのクラスによってブロックされたいくつかの本当の攻撃を受けたので、とてもうまくいっているようです。法的なボットをブロックするものではありませんが、検出方法が正しいことをテストすることは容易ではありません。検索エンジンのボット用のテストケースがありますか(シミュレータ)

今日、私はクラスから "ycar10.mobile.bf1.yahoo.com"をブロックしたというメールを受け取りました。それは自分自身をyahooロボットと認識していましたが、プロキシの背後にありました。ブラックリストに登録されていればネットを検索しますが、ブラックリストに登録されていないと判断しました。ですから問題は:プロキシの背後にあるボットをブロックするのは正しいですか(とにかく法的なボットプロキシを使用しますか?)ここではボットに関するいくつかの情報:

HTTP_ACCEPT = */* 
HTTP_X_FORWARDED_FOR = 107.38.3.137, 98.137.88.60 
HTTP_USER_AGENT = YahooCacheSystem 
PATH = /sbin:/bin:/usr/sbin:/usr/bin 
SERVER_SIGNATURE = 
SERVER_SOFTWARE = Apache/2.2.14 
SERVER_PORT = 80 
REMOTE_ADDR = 98.139.241.249 
REMOTE_PORT = 53863 
GATEWAY_INTERFACE = CGI/1.1 
SERVER_PROTOCOL = HTTP/1.1 
REQUEST_METHOD = GET 
QUERY_STRING = 
REQUEST_URI =/
SCRIPT_NAME = /index.php 
PHP_SELF = /index.php 
REQUEST_TIME = 1330923844 

そうでない場合は、テスト・ケース(スイート/シミュレータ)テスト法的ボットの正しい動作(だけのような主要なもの可能にできるようにするがある:Googleのを、 Yahoo、Bing)を使用して、正しい検出方法を使用していることを確認してください。いくつかのシミュレータがありますが、それらのほとんどは正しく動作していません。次の質問は「私はそれを信頼できるのですか...」です。

*注意:上記の詳細に見ることができるように、53863であるポートの種類、53863のREMOTE_PORT値を使用している*

私はドロップし、あなたが私の質問を理解することを願って、そうでない場合は?ここに行こう。

+0

リモートポートには、クライアントが選択するものをすべて使用できます。ボットは、それが気に入ったらプロキシを使うことができます。偽のボットは、気に入ったUser-Agentを使用できます。 – Brad

+0

コメントありがとうございました。ボットがプロキシを使用できることは知っていますが、合法的なもの(Google、Yahoo、Bingなど)はプロキシを使用することはありますか?さもなければ、検出方法は正しいでしょうか? – Codebeat

+0

「法的な」プロキシをどのように定義していますか?あなたはGoogle、Yahoo、Bingだけを気にかけますか、それともすべて気にしていますか?私の要点は、あなたが受け取っているリクエストについては決して特定できないということです。すべての情報を偽装することができます。 – Brad

答えて

0

ポート番号53863は有効なポートであり、何も予約されていません。あなたのサーバーに接続するコンピュータは、特定の接続用の任意のポートを選択できます(おそらく、1024を超えるポート番号が表示されます)。

web-sniffer.netのようなサイトでは、自分自身をGoogleBotとして識別することができます。欠点は、行動ではなくユーザーエージェントだけを偽装することです(私は彼らがrobots.txtを最初にチェックしているかどうか疑問です)。

個人的なアドバイスとして、多くのIPを一度にブロックしたり、オンラインのブラックリストをチェックしたりしないでください。多くのIPをブロックし始めると、信頼できるボットをブロックしたことに気づくことになり、どのボトルであるかを知る方法がありません。

関連する問題