【问题标题】:I want to block these 2 types of visitors to a site. How do I do this?我想阻止这两种类型的网站访问者。我该怎么做呢?
【发布时间】:2013-10-23 13:34:17
【问题描述】:

我想阻止这些类型的对我网站的请求。最好的方法是什么?我列出了迄今为止我尝试过的和我的想法。

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

我想使用基于速度的最佳方法,我也不想屏蔽真实的人?

网站使用:

- PHP
- Symfony2
- Apache
- Ubuntu

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

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

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

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

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

谢谢。

【问题讨论】:

  • 您在堆栈中的位置越低,您的性能就越好。对于您的用例,使用 Apache 阻止 IP 应该没问题(除非您拥有一个非常频繁且著名的站点,该站点也受到僵尸网络的攻击)。

标签: php apache security symfony ubuntu


【解决方案1】:
  1. 在防火墙处阻止它们。

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    1. 如果使用了 IP 地址,则将用户重定向到基于域名的 url。 See this for an example
    2. 定义一个虚拟主机来匹配IP地址作为第一个虚拟主机。这里抛出一个 HTTP 403 错误

    【讨论】:

    猜你喜欢
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多