技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 安全 --> Nginx过滤hash ddos攻击

Nginx过滤hash ddos攻击

浏览:2364次  出处信息

    这事可能都过气了,不过还是贴出我使用的方式吧,用的着的可以参考.

    上段时间的各语言hash绝对印象深刻吧,做网站的几乎都在此类,不论你是用的是php,python还是ruby都不同程度受到影响, PHP尤其明显,因为PHP用的人也多嘛,攻击方式简直简单到不行,有兴趣的可以找我索取此测试脚本,一个终端随便搞挂一台有次漏洞的PHP站点.

    我们http请求都是通过nginx反向代理,所以优势是可以在nginx这一层对请求做很多逻辑,此次防hash dos就是这个架构.

    原理是过滤post请求中超过指定参数数量的请求, 我的是300,可自己调整,应该没有http开发者在使用post方法的时候有超过这个参数值的了,所以不会影响正常请求.

    之前有哥们自己写ngx的C模块,使用的也是这个原理,不过NGX模块开发复杂度是有的,因为自己C也看不熟练,还是自己用lua写,方便快捷,简洁明了.

    #配置依赖ngx-lua模块

    好,废话不多说,贴上nginx的配置:

    >>cat  post-limit.lua

    ngx.req.read_body()

    local method = ngx.var.request_method

     local max_count= 300  -post最大参数

    if method == ‘POST’ then

     local data = ngx.req.get_body_data()

     if data then

     local count = 0

     local i = 0

     while true do

     if count > max_count then

     -ngx.redirect(‘/post-error’)

     ngx.exit(ngx.HTTP_BAD_REQUEST)

     end

     i = string.find(data, ‘&’, i+1)

     if  i == nil then break end

     count = count + 1

     end

     end

     end

    >> cat nginx.conf

    …..

    server {

    client_body_buffer_size 20m;

     client_max_body_size 20m;

     access_by_lua_file /opt/conf/nginx/lua/post_limit.lua;

    }

    …..

    nginx其他配置已隐去.

    nginx 1.0.XX结合后端PHP应用测试通过,配置也适用其他开发语言的http应用.

    有时间可以慢慢升级你的后端应用PHP版本了,否则一系列的版本升级,也够呛.

    完.

建议继续学习:

  1. HashMap解决hash冲突的方法    (阅读:11037)
  2. 关于memcache分布式一致性hash    (阅读:10635)
  3. 一种抵御 DDoS 攻击的 IP 追踪技术    (阅读:6209)
  4. 防DDoS脚本 in python    (阅读:5867)
  5. MinHash原理与应用    (阅读:5698)
  6. LVS hash size解决4096个并发的问题    (阅读:5362)
  7. 无锁HashMap的原理与实现    (阅读:5095)
  8. 如果用户在5分钟内重复上线,就给他发警告,问如何设计?    (阅读:4814)
  9. Ubuntu 下Hash校验和不符问题的解决    (阅读:4290)
  10. 浅谈Ddos攻击攻击与防御    (阅读:3747)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1