未定义的索引:HTTP_USER_AGENT错误日志中


Undefined index: HTTP_USER_AGENT in error logs

我的错误日志中的空用户用户代理有一些问题,其中大部分发生在 404 页面上,我正在跟踪所有错误以进行进一步纠正或排除。

发现很少有解决方案可以解决此错误的问题,所以这不是什么大问题,但我想我真正的问题是,因为大多数这些错误都是空的HTTP_USER_AGENT在我看来它不是一个真正的用户,而是一个机器人正在尝试我的系统的任何漏洞。我想做的是为此创建一个陷阱,但我不确定只有一件事,那就是友好的机器人,如 googlebot 或 yaoo slurp 或类似的机器人,我倾向于保持不受阻止地抓取我的网站。这些友好的机器人是否有任何我可以识别它HTTP_USER_AGENT,这样我就不会意外阻止它?我的第二个问题是什么正确的方法?任何代码或指针都会有所帮助。

提前感谢,如果我的问题不完全是关于在代码创建过程中获取堆栈和寻找解决方案,请原谅我。我只是厌倦了我网站上最近的所有这些垃圾邮件活动,除了这里之外,我无处可去寻找可靠的解决方案。

我必须编辑问题以使其清楚。

如果 403 为

空,则只发出 403 HTTP_USER_AGENT是否安全?

其中一个例子是以下页面,该页面在我的服务器上从未存在过状态 301,国家/地区中国,用户代理 Bittorrent,然后再次使用相同的 IP 与空白用户代理。

GET /announce?info_hash=%8E%D0%80%01%B7K7%DBb%CF%83%82%B3%93%8E%A0wi%90%D4&peer_id=%2DSD0100%2D%09B%12%19%5FYi%2B%0C%00%C9Q&ip=192.168.1.101&port=14706&uploaded=880755775&downloaded=880755775&left=1101004800&numwant=200&key=26441&compact=1 HTTP/1.0

是的,大多数机器人(谷歌/雅虎)都设置了他们的用户代理,你永远不应该依赖它们。

因此,googlebot 可以使用标准的浏览器用户代理(例如:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36)访问您的网站,以检查是否存在任何差异。

这是为了防止网站管理员仅针对googlebot优化网站并为用户提供不同的页面。

如果您看到来自某个机器人的流量过多,最好的选择是阻止其地址。