在数据库中阻止.htaccess或PHP中的IP地址?

时间:2013-04-30 15:18:17

标签: php mysql blocking web-crawler

我正在为我的网站构建一个bot-trap / crawler-trap:

页面上有一个隐藏链接,普通用户看不到,但机器人看到了。该链接也在robots.txt中显示,因此Google不会陷入陷阱。 当机器人打开隐藏页面时,IP会自动在MySQL中标记为红色。

我的问题是:

  1. 当新的IP被标记时,哪种方式更好地阻止:重新生成.htaccess文件,并添加新的IP,因此网络服务器本身将进行阻止。
  2. 请勿与.htaccess混淆,而是在每次有人加载页面时从IP查找MySQL表,然后在PHP中决定如何处理用户。

3 个答案:

答案 0 :(得分:2)

我肯定会选择选项2.唯一的原因是我会非常不舒服,因为我一直在网站上随机播放.htaccess文件。这种唠叨的感觉就像在我的额头上一直持枪。

如果它是数据库驱动的话,最糟糕的情况可能发生在搞砸了,一些黑名单的IP仍然可以访问。有了htaccess,如果出现问题,不仅每个用户的体验都会搞砸,安全数据也会受到影响。

答案 1 :(得分:1)

而不是搞乱Apache httpd配置,如果你的脚本由于某种原因出错会导致你的网络堆栈崩溃,那么与fail2ban这样的系统集成会怎么样?

使用禁止工具阻止会更有效。

答案 2 :(得分:0)

哪种方式更好?这在很大程度上取决于你能做什么。经验法则是:

  • 请勿使用.htaccess个文件 - 直接配置服务器。
  • 将Apache与您的Mysql直接连接以获取authz。
  • 阻止TCP / IP层(Iptables)中的流量入侵

其他所有东西都只是你可以做的爬行,但是你应该放心,因为你无法做到这一点。因此,除非你努力做到最好,否则不要太在意。