如何实现一个不会成为我们网站DoS工具的slowban?
问题是服务http响应的故意延迟会使服务器资源繁忙(Web服务器线程和可能的其他子系统)。
答案 0 :(得分:2)
您可以将slowban与资源监控结合起来,这样,如果慢速用户尝试使用DoS,那么它们将会被永久化。
答案 1 :(得分:2)
如果您的Web应用程序很复杂并且占用了大量资源,那么由于slowloris-attack存在问题,实施慢速板可能是错误的。
相反,您可以通过轻量级代理或像lighttpd或nginx这样的网络服务器代理您的应用程序来引入slowban,这些服务器来自缓存和静态内容,并利用您的防火墙。从那里开始,您可以在防火墙中shape the bandwidth,保持所需的资源相对较低,因为troll的连接主要由轻量级代理而不是繁重的应用程序服务器提供。
虽然这本身有一些危险要考虑(即为了使一个可能不安全的应用程序在你的防火墙中插入基于ip的规则),iptables和内核在资源上相对容易。
您唯一需要考虑的是系统可以容忍的开放连接数量以及何时开始杀死最长的开放连接以便为新系统腾出空间。彻底准备您的网站fighting against low bandwidth - 攻击。
答案 2 :(得分:-3)
您可以实现slowban客户端而不是服务器端,例如:
CSS:
body {
visibility: hidden;
}
JavaScript的:
$(document).ready(function() {
window.setTimeout(function() {
$("body").css("visibility", "visible");
}, /* Slowban delay in miliseconds */);
});
这根本不会淹没服务器。
为了进一步防止DoS攻击,您可以在后端安装Anti-DoS软件(例如CloudFlare)。