我给自己写了一个非常强大的保护类“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
否则,是否有一个测试用例(套件/模拟器)能够测试合法机器人的正确行为(只允许主要的,如:谷歌、雅虎、必应),以确保我使用了正确的检测方法. 周围有一些模拟器,但大多数都不能正常工作,下一个问题是:“我能相信它吗……”。
*注意:从上面的细节中可以看到,它使用的REMOTE_PORT值为53863,53863是什么端口?*
我希望您能理解我的问题,如果没有,请在此处留言。