Vol*_*kiy 5 ruby-on-rails ddos nginx
我有rails3 + nginx堆栈.
几天前它是ddos攻击,有很多GET请求,类似于:
GET /?aaa2=bbbbbbb&ccc=1234212
GET /?aaa1=bbbbbbb&ccc=4324233
Run Code Online (Sandbox Code Playgroud)
首先,我添加到应用程序控制器规则:
before_filter :ddos_check
def ddos_check
params.each do |param|
if (!param[1].nil? && (param[1].is_a?String) && !param[1].scan(/bbb/sim).blank?)
redirect_to 'http://google.com/'
return
end
end
end
Run Code Online (Sandbox Code Playgroud)
它保护控制器免受繁重的DB调用.
是否可以使用特定规则过滤ddos消息的任何gems或nginx模块?
Mik*_*del 18
您应该考虑使用像Rack :: Attack这样的中间件.由于它在应用程序堆栈中较低,它将比Rails更早,更快地过滤掉恶意请求.
用于阻止和限制滥用请求的机架中间件
Rack :: Attack是一个机架中间件,可以保护您的Web应用免受恶意客户的侵害.它允许基于请求的任意属性进行白名单,黑名单,限制和跟踪.
如果您看一下gem自述文件,可以使用很好的例子来处理像你这样的案例.但请记住,如果攻击者至少有点聪明,他们会注意到你的努力,并试图超越他们.DDOS保护通常是猫捉老鼠游戏.
| 归档时间: |
|
| 查看次数: |
3735 次 |
| 最近记录: |