私は非常に強力な保護クラス "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値を使用している*
私はドロップし、あなたが私の質問を理解することを願って、そうでない場合は?ここに行こう。
リモートポートには、クライアントが選択するものをすべて使用できます。ボットは、それが気に入ったらプロキシを使うことができます。偽のボットは、気に入ったUser-Agentを使用できます。 – Brad
コメントありがとうございました。ボットがプロキシを使用できることは知っていますが、合法的なもの(Google、Yahoo、Bingなど)はプロキシを使用することはありますか?さもなければ、検出方法は正しいでしょうか? – Codebeat
「法的な」プロキシをどのように定義していますか?あなたはGoogle、Yahoo、Bingだけを気にかけますか、それともすべて気にしていますか?私の要点は、あなたが受け取っているリクエストについては決して特定できないということです。すべての情報を偽装することができます。 – Brad