2012-03-05 61 views
2

我已經寫了自己一個非常強大的防護等級「Blockip的」,可以使用帶有IP的黑名單,可以檢測奇怪的IP配置的,並阻止代理。當它找到一個,我得到一個關於訪問者的詳細電子郵件,以及爲什麼它被阻止,他們想要做什麼(當然每天一次)。它看起來效果很好,因爲我在過去遭受過一些被這個班級封鎖的真正攻擊。它不會阻止合法機器人,但要檢測檢測方法是否正確並不容易。有一個測試用例可用(模擬器)搜索引擎機器人

今天我從類的電子郵件,它已阻止「ycar10.mobile.bf1.yahoo.com」,它自身標識爲雅虎機器人,但背後的代理。我搜索網絡,如果它被列入黑名單,但沒有發現它被列入黑名單。所以問題是:是否阻止代理背後的機器人(反正使用合法機器人代理?)?這裏關於機器人的一些信息:

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 

否則,有一個測試用例(套裝/仿真器)能夠測試合法機器人的正確行爲(只允許其中主要的如:谷歌,雅虎,必應),以確保我使用了正確的檢測方法。有一些模擬器,但其中大多數工作不正常,下一個問題是:「我可以相信它......」。

*注:如你在上面的細節看,它使用的53863一REMOTE_PORT價值,什麼樣的端口是53863 *

我希望你能理解我的問題,如果沒有,掉落?在這裏。

+0

遠程端口可以是任何客戶端選擇。機器人可以使用代理,如果他們覺得喜歡它。假殭屍可以使用任何他們感覺的用戶代理。 – Brad 2012-03-05 17:17:26

+0

感謝您的評論。我知道漫遊器可以使用代理,但是合法的(例如Google,Yahoo和Bing)有時使用代理?否則,檢測方法是正確的,對嗎? – Codebeat 2012-03-05 17:24:12

+0

你怎麼定義一個「合法」的代理?你只關心谷歌,雅虎和Bing嗎,還是你關心所有這些?我的觀點是,無論如何你都無法確定你收到的請求。所有的信息都可能被欺騙。 – Brad 2012-03-05 17:41:56

回答

0

端口號53863是一個有效的端口,而不是被保留任何東西。連接到服務器的計算機可以爲該特定連接選擇任何端口(儘管您可能會看到端口號超過1024)。

您可以使用網站,如web-sniffer.net能夠識別自己像Googlebot。缺點是他們只會欺騙用戶代理,而不是行爲(我懷疑他們首先檢查robots.txt)。

作爲個人的意見,請不要嘗試一次阻止多個IP和網上查詢黑名單。如果你開始阻止很多IP,你最終可能意識到你已經阻止了可信任的機器人,並且你將無法知道它們是哪一個。

相關問題