【问题标题】:Is there a test case available (simulator) for search engine bots是否有可用于搜索引擎机器人的测试用例(模拟器)
【发布时间】:2012-03-23 03:58:15
【问题描述】:

我为自己编写了一个非常强大的保护类“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   

否则,是否有一个测试用例(套件/模拟器)能够测试合法机器人的正确行为(仅允许主要机器人,例如:Google、Yahoo、Bing),以确保我使用正确的检测方法。周围有一些模拟器,但大多数都不能正常工作,下一个问题是:“我能相信它吗……”。

*注意:从上面的细节可以看出,它使用的REMOTE_PORT值为53863,53863是什么端口?*

希望你能理解我的问题,如果没有,请在此处留言。

【问题讨论】:

  • 远程端口可以是客户选择的任何东西。如果他们愿意,机器人可以使用代理。假机器人可以使用他们喜欢的任何用户代理。
  • 感谢您的评论。我知道机器人可以使用代理,但合法的(例如 Google、Yahoo 和 Bing)有时会使用代理吗?不然检测方法是对的吧?
  • 您如何定义“合法”代理?您只关心 Google、Yahoo 和 Bing,还是关心所有这些?我的观点是,在任何情况下,您都无法确定您收到的请求。所有信息都可能被欺骗。
  • 是的,我只关心合法的搜索引擎(谷歌、雅虎和必应)。他们是否仍然使用代理,否则当代理将自己标识为合法搜索引擎时,如果它是代理,我可以阻止它们。
  • affiliatebeginnersguide.com/articles/block_bots.html 这篇文章可能会有所帮助,上面的机器人在尝试索引之前是否向 robots.txt 发出了请求?如果不是,那么它很可能是用户代理欺骗

标签: php proxy simulator bots testcase


【解决方案1】:

端口号 53863 是一个有效端口,不为任何东西保留。连接到您的服务器的计算机可以为该特定连接选择任何端口(尽管您可能会看到高于 1024 的端口号)。

您可以使用 web-sniffer.net 等可以将自己标识为 GoogleBot 的网站。缺点是他们只欺骗用户代理,而不是行为(我怀疑他们首先检查 robots.txt)。

作为个人建议,请不要尝试一次屏蔽多个 IP 并查看在线黑名单。如果您开始屏蔽大量 IP,您最终可能会意识到您已经屏蔽了受信任的机器人,而您将无法知道它们是哪些。

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2010-09-17
    • 2011-03-04
    相关资源
    最近更新 更多