将您的站点限制为N每秒 HTTP 请求似乎不太可能有效抵御 DoS 攻击——如果您在 Web 服务器上进行节流,它仍在工作,如果攻击是分布式的,那么它无论如何都会绕过任何每个客户端的限制,它会激怒您的用户(除非您正在做类似 SO 三部曲所做的事情并将大量内容卸载到未受保护的服务域,请参阅sstatic.net)。
在我的书中,这归结为两个问题:
你是 DoS 的吗?您将来可能会受到 DoS 攻击吗?
如果你是,你想在它们开始攻击你的基础设施之前尝试在网络级别(最好在你的上游提供商)阻止这些攻击。如果不是,请停止担心。
你被 Slashdotted 了吗?
如果你是,那可能是一件好事。做所有其他小型站点管理员(甚至是大型站点管理员)都会做的事情:在您的 Web 服务器上启动 MaxClients 设置,然后抛出一个包含适当内容的简单的 1990 年代 HTML 页面,或者咬住枕头等待它结束:)
如果您有一个页面,带有 CSS、一些图像、一个网站图标,也许还有一两个 .js,当浏览器请求该页面时,它现在需要获取所有其余的文件。根据任何一方是否支持keepalive、流水线等,我认为您可以轻松地看到每秒来自合法连接的5+请求。
除非您使用的任何产品都限制仅获取 .html,否则我认为 5 太低了。您会想找出它们的限制以及您的一般页面构造,以找出可以合理假设在一秒钟内请求的内容。
安全性和可用性之间存在平衡。太多的一个负面影响另一个。
将您的站点限制为
N
每秒 HTTP 请求似乎不太可能有效抵御 DoS 攻击——如果您在 Web 服务器上进行节流,它仍在工作,如果攻击是分布式的,那么它无论如何都会绕过任何每个客户端的限制,它会激怒您的用户(除非您正在做类似 SO 三部曲所做的事情并将大量内容卸载到未受保护的服务域,请参阅sstatic.net)。在我的书中,这归结为两个问题:
如果你是,你想在它们开始攻击你的基础设施之前尝试在网络级别(最好在你的上游提供商)阻止这些攻击。如果不是,请停止担心。
如果你是,那可能是一件好事。做所有其他小型站点管理员(甚至是大型站点管理员)都会做的事情:在您的 Web 服务器上启动 MaxClients 设置,然后抛出一个包含适当内容的简单的 1990 年代 HTML 页面,或者咬住枕头等待它结束:)
来自单个 IP 的普通 DoS 很难与合法的浏览器活动区分开来,尤其是在 AJAX 刷新页面部分、多个选项卡和大量图像文件发挥作用的时候。如果您使会话无阻塞,还应准备好遇到误报。
我曾经限制为 5 个请求/秒,但后来又恢复了。无论如何,分布式 DoS 将不会被检测到,即使没有僵尸网络也很容易实现。我收到了一个warez 站点的DDoS,该站点只是将img-src=mypage 放入他们的页脚(是的,这是个人的事情)。因此,如果有人想通过犯罪手段杀死您的页面,他们可以很容易地做到这一点。除了扩展到您的网络早餐吃 DDoS 的大小之外,您几乎无能为力。