ruby-on-rails – 带有nginx ddos​​保护的Ruby on rails

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 带有nginx ddos​​保护的Ruby on rails前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有rails3 Nginx堆栈.

几天前它是ddos攻击,有很多GET请求,类似于:

GET /?aaa2=bbbbbbb&ccc=1234212
GET /?aaa1=bbbbbbb&ccc=4324233

首先,我添加到应用程序控制器规则:

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

它保护控制器免受繁重的DB调用.

是否可以使用特定规则过滤ddos消息的任何gems或Nginx模块?

最佳答案
您应该考虑使用像Rack::Attack这样的中间件.由于它在应用程序堆栈中较低,它将比Rails更早,更快地过滤掉恶意请求.

Rack middleware for blocking & throttling abusive requests

Rack::Attack is a rack middleware to protect your web app from bad
clients. It allows whitelisting,blacklisting,throttling,and
tracking based on arbitrary properties of the request.

如果您看一下gem自述文件,可以使用很好的例子来处理像你这样的案例.
但请记住,如果攻击者至少有点聪明,他们会注意到你的努力,并试图超越他们. DDOS保护通常是猫捉老鼠游戏.

猜你在找的Nginx相关文章