1

我有一个需要登录的应用程序。

只能通过单个登录页面访问该站点。

我担心 DDOS,并且(感谢这里的朋友)能够编写一个脚本来识别潜在的 DDOS 攻击并锁定特定 IP 以防止站点访问(也是防止多个密码/用户名组合猜测的安全措施)

阻止那些使用 .htaccess 冒犯的 IP 是否有任何价值。我可以简单地修改文件以防止我的服务器在一段时间内允许访问有问题的 IP,但这有什么好处吗?即使 .htaccess 阻止它们被服务,传入的请求是否仍然会破坏系统,还是会减少允许真正请求进入的负载?

值得注意的是,我的大部分请求都来自有限范围的正版 IP,因此我打算实现的内容如下:

如果怀疑有 DDOS 攻击,则只允许从之前在设定的时间段内良好登录的 IP 进行访问。永久阻止所有无法正常登录的可疑 IP,除非已发出手动解除阻止请求。

您的明智建议将不胜感激。如果您认为这是浪费时间,请告诉我!

实现几乎是纯 PHP。

4

1 回答 1

2

如果被 .htaccess 阻止,由 DDOS 攻击引起的负载将会降低,因为不需要的连接将被提前拒绝并且不允许调用您的 PHP 脚本。

以登录脚本的请求为例,您的 apache 服务器将调用 PHP 脚本,该脚本将(我假设)在某种数据库中进行用户查找。这是负载。

Request <---> Apache <---> PHP <---> MySQL (maybe)

如果您阻止和 ip(例如 1.2.3.4),您的 htacess 将有一个额外的行,如下所示:

Deny from 1.2.3.4

请求会像这样:

Request <---> Apache <-x-> [Blocked]

并且不会发生 PHP 脚本或数据库调用,这比前面的示例负载更少。

这还具有防止对登录表单进行暴力攻击的额外好处。您必须决定何时将 IP 添加到阻止列表,可能是当他们在一分钟内提供 20 次错误凭据或连续超过半小时提供错误凭据时。

防火墙

不过,最好使用防火墙来阻止请求,而不是使用 .htaccess。这样请求永远不会到达 apache,这是服务器根据 IP 地址规则丢弃数据包的简单操作。

下面的行是一个 shell 命令(当以 root 身份运行时)将添加一个iptables规则来丢弃来自该 IP 地址的所有数据包:

/sbin/iptables -I INPUT -s 1.2.3.4 -j DROP
于 2013-06-13T02:45:20.843 回答