0

我想阻止这些类型的对我网站的请求。最好的方法是什么?我已经列出了到目前为止我尝试过的内容和我的想法。

我不需要任何代码,只需要一个指向正确方向的指针。

我想使用基于速度的最佳方法,我也不想阻止真正的人?

该网站使用:

- PHP
- Symfony2
- Apache
- Ubuntu

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

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

我目前记录每个访问者的 IP。然后我手动查看这些数据,如果我决定需要阻止某个 IP(或范围),我会采取手动操作。

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

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

谢谢。

4

2 回答 2

3
  1. 在防火墙处阻止它们。

  2. 要么修复您的站点以在通过 IP 访问时不被破坏,要么更改 apache 的配置以不将其用作默认站点。

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

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

于 2013-10-15T16:51:57.550 回答
1

Spamhaus已经维护了一份IP 地址黑名单并每天更新。您可以使用此脚本每天自动获取新列表并更新防火墙以阻止 IP 地址。

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

对于您问题的第二部分,您可以执行以下操作之一

  1. 如果使用了 IP 地址,则将用户重定向到基于域名的 url。请参阅此示例
  2. 定义一个虚拟主机来匹配 ip 地址作为第一个虚拟主机。这里抛出一个 HTTP 403 错误
于 2013-10-15T16:55:53.087 回答