许多例子告诉我要以每秒 5 或 4 个请求进行防御。
因为通常一个访客一秒钟会点击 1 到 2 个链接,所以我认为每秒 2 个请求的防御就足够了。但我担心任何未知的缺点
因此,我需要一个建议,因为我从未听说过 2req/sec 的防御
谢谢
答案1
如果您有一个页面,其中包含 CSS、一些图片、一个图标和一个或两个 .js,那么当浏览器请求该页面时,它现在需要获取所有其余文件。根据任一方是否支持 keepalive、管道等,我认为您可以轻松看到来自合法连接的每秒 5 个以上请求。
除非您使用的产品仅限制 .html 的获取量,否则我认为 5 太低了。您需要找出它们限制的内容以及您的一般页面结构,以找出可以合理地假设在一秒钟内请求的内容。
安全性和可用性之间存在平衡。过高的一个因素会对另一个因素产生负面影响。
答案2
将网站限制为N
每秒 HTTP 请求数似乎不太可能有效抵御 DoS 攻击——如果你限制了你的 Web 服务器,它仍然在工作,如果攻击是分布式的,它无论如何都会绕过任何每个客户端的限制,并且它会彻底激怒你的用户(除非你正在做像 SO 三部曲那样的事情并将大量内容卸载到不受保护的服务商域,请参阅静态网)。
在我看来,这可以归结为两个问题:
- 你被 DoS 攻击了吗?有可能将来会遭受 DoS 攻击吗?
如果会,您需要在网络级别(最好是上游提供商)阻止这些攻击,以免它们开始攻击您的基础设施。如果不会,就不要再担心了。 - 您是否被 Slashdotted 了?
如果是,那可能是件好事。请按照其他每个小型网站管理员(甚至大型网站管理员)的做法去做:提高 Web 服务器上的 MaxClients 设置,要么抛出一个包含适当内容的 1990 年代的纯 HTML 页面,要么咬紧牙关,等待它结束 :)
答案3
单一 IP 的普通 DoS 攻击与合法浏览器活动很难区分,尤其是在 AJAX 刷新页面部分、多个选项卡和大量图像文件发挥作用的时候。此外,如果您的会话不阻塞,请做好遇到误报的准备。
我以前限制为每秒 5 个请求,但后来又恢复了。分布式 DoS 无论如何都无法检测到,即使没有僵尸网络也很容易实现。我曾收到过一个盗版网站的 DDoS 攻击,该网站只是将 img-src=mypage 放入页脚(是的,这是个人行为)。因此,如果有人想通过犯罪手段关闭您的页面,他们可以很容易地做到这一点。除了扩大到您的网络被 DDoS 吞噬的规模之外,您几乎无能为力。