1

在我的 apache 日志中,我有很多这样的东西:

<IP ADDRESS> - - <DATE> "GET /forward?path=http://vary_bad_link_not_for_children" <NUM1> <NUM2> "-" <String>

<NUM1>:302 或 404

<NUM2>:5XX、6XX 或 11XX

<字符串>:

“Mozilla/5.0(兼容;AhrefsBot/5.1;+ http://ahrefs.com/robot/)”

“Mozilla/5.0(兼容;MJ12bot/v1.4.5;http://www.majestic12.co.uk/bot.php? + )”

“Mozilla/5.0(兼容;Googlebot/2.​​1;+...链接)”

“Mozilla/5.0(兼容;Exabot/3.0;+...链接)”

ETC...

我用这个正则表达式为fail2ban做了一个监狱:

failregex = ^<HOST> .*"GET .*/forward\?path=

除了被禁止的 IP 地址(见日志中的 <IP ADDRESS>)是 google 和其他非常知名的公司的 IP 之外,一切都运行良好。

我真的不明白为什么会这样;我的意思是我为什么要禁止谷歌和其他公司,如果不是,我为什么要接受对我的服务器的所有这些不适当的请求。

我想澄清我的问题,因为它解释得不好:

1-为什么谷歌 IP(和其他知名公司)正在做那些“色情”请求

2-“/forward?path=...”有什么意义吗?它是 apache 功能吗?

3-如何在不停止“好”机器人引用我的网站的情况下处理这个问题。

提前感谢您的帮助!

4

1 回答 1

1

您可以在robots.txt中告诉机器人不要访问您网站的某些部分。

添加

User-agent: *
Disallow: /forward

到您的 robots.txt 将阻止所有机器人访问以 . 开头的所有页面/forward。他们将继续访问和索引其他页面。

如果您想允许/forward?path=something_nice但不允许/forward?path=very_bad_link,您可以这样做:

User-agent: *
Disallow: /forward?path=a_specific_bad_link
Disallow: /forward?path=another_bad_link

为什么机器人会发出这些请求?

这可能是完全无辜的。也许有人错误地链接到您的网站,也许该页面曾经存在而不再存在。

这可能是由于您自己网站上的链接指向此 URL。检查一下。

在最坏的情况下,可能有人将您用作不知情的代理人。确保服务器在/forward请求时不提供任何服务,并检查日志是否有其他可疑内容。

如果请求继续呢?

请求可能需要一段时间才能停止。机器人不会每次都请求您的 robots.txt,您必须等待它们更新。

但是,如果它们最终没有停止,则意味着它们是恶意机器人,并且会欺骗 Googlebot 用户代理。robots.txt 为机器人提供指令。善意的机器人尊重他们,但他们不能强迫恶意机器人远离。然后你需要一个像fail2ban这样的解决方案。

于 2016-04-13T19:23:34.093 回答