我想阻止这两种类型的访问者访问网站。我该怎么做呢?

时间:2013-10-15 16:36:44

标签: php apache security symfony ubuntu

我想阻止这些类型的请求到我的网站。最好的方法是怎样做的?到目前为止,我列出了我的尝试和我的想法。

我不需要任何代码只是指向正确的方向。

我想根据速度使用最好的方法,我也不想阻止真正的人?

该网站使用:

- PHP
- Symfony2
- Apache
- Ubuntu

我可以在PHP中轻松完成这两项工作,但认为使用Apache / Ubuntu等可能会更好。

(1)阻止某些IP地址。这只会是显然做一些狡猾的事情。例如。如果我已经证明所有这些IP地址都是狡猾的,那么来自中国的一系列IP地址。

我目前记录每位访客的IP。我稍后手动查看这些数据,如果我确定需要阻止的IP(或范围),我会采取手动操作。

(2)阻止任何人使用服务器IP地址(例如123.55.44.222)而不是实际的“domain.com”域名访问我的网站。我想这样做是因为它弄乱了网站(毫无疑问,这可以通过更改我的代码来解决,但是没有人输入IP因此更容易做到这一点。)

有了这个,我想要一段代码来检测他们是否正在使用IP并立即阻止它们(可能会返回403错误)

感谢。

2 个答案:

答案 0 :(得分:3)

  1. 阻止它们进入防火墙。

  2. 修复您的网站,以便在通过IP访问时不会被破坏,或者更改apache的配置,使其不作为默认网站。

  3. 除此之外,痴迷地阅读你的日志并试图阻止“人们做坏事”会让你[进一步]陷入疯狂,而且通常毫无意义。你将减少剩余的空闲时间和理智,用僵尸网络,代理和脚本小子玩whackamole。

    修复您的代码。通过消除他们这样做的能力来解决人们正在做这些“坏事”的事实。

答案 1 :(得分:1)

Spamhaus 已经维护blacklist of IP addresses并每天更新。您可以使用this script每天自动获取新列表并更新防火墙以阻止IP地址。

如果您希望维护自己的黑名单,只需替换脚本中与Spamhaus提取有关的逻辑。

对于问题的第二部分,您可以执行其中一项

  1. 如果使用了ip地址,则将用户重定向到基于域名的URL。 See this for an example
  2. 定义虚拟主机以将IP地址与第一个虚拟主机相匹配。这里抛出一个HTTP 403 erro