阻止未解决的IP地址是一个好主意?

我有一个网站在哪里:

  • 我们目前有很多机器人试图抓住来自中国,乌克兰等的我们的内容(这是一个商业目录)。
  • 根据AWStats,5%的IP地址是“未解决”的

所以我的想法是限制每个IP的HTTP请求的数量(除了知名的机器人,例如Google Bot):

  • 这将解决我的第一个问题(机器人)
  • 但是,这也将阻止所有“未解决的IP”stream量

– >阻止所有这些“未解决”的IP是一个好主意? 我会阻止一些合法的stream量?

只是限制每个地址的HTTP请求数量不会导致阻止“未解决的”IP地址。

find哪个地址是“未解决”的实时将强制反向DNS查询每个访问者至less一次。 这会增加您的初始HTTP响应时间,并且在名称服务器不可用和超时时创build一个接近DoS的条件 – 您真的不需要这样做。

一般来说,试图保护公开的内容不被机器人抓住是Sisyphean的任务 – 你肯定不会让每个访问者在通过图灵testing之后才允许他们访问你的网站。 任何可用的方法都只能降低Web服务器的负载,而不能完全阻止。 此外,与所有基于统计的差异化方法一样,减less可以访问您的内容的机器人数量也将不可避免地增加由您的阻止规则带来不便的常规用户数量。

我不知道详细awstats,但我认为“未解决”状态适用于所有IP地址没有反向DNSlogging。 阻止所有来自IP地址的stream量而没有反向logging将会杀死大量的普通用户。

尝试通过检查您的网站日志有select地阻止机器人。 您可以使用fail2ban以自动方式阻止此stream量。 fail2ban基于日志文件分析,因此您只需在access.log中查找模式并相应地configurationfail2ban即可。

你的build议是基于5%的地址是盗用你的内容的相同的地址 – 但是你不会说如果是这样的话。 当然,我希望你会阻止很多合法的stream量。

我同意syneticon-dj所说的大部分内容,但是还有更有效的反垃圾邮件的方法(尝试使用Googlesearch)。 检查引用者,需要一个会话ID,使用CSRF保护,但在Cookie中传递令牌而不是表单字段。 这提供了一个识别缉毒者的机制 – 就阻塞他们而言,那么你真的想在尽可能早的阶段这样做 – 也就是说,当你从这样一个IP获得一个SYN数据包。 这意味着阻止他们在防火墙上。 Fail2ban提供了一种基于日志条目即时重新configuration防火墙的方法。 但是要小心,iptables规则的长链会影响延迟,从而影响吞吐量 。