IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Nginx过滤hash ddos攻击

MySQLOPS 数据库与运维自动化技术分享 2012-04-07 14:51:50 累计浏览 3,301 次
本机暂存

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

    上段时间的各语言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. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 107,164)
  2. 使用gettext来支持PHP的多语言 (累计阅读 39,268)
  3. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,895)
  4. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  5. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  6. 记录一个软中断问题 (累计阅读 16,954)
  7. 解析nginx负载均衡 (累计阅读 16,622)
  8. 我的PHP,Python和Ruby之路 (累计阅读 13,146)
  9. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,789)
  10. 15个最好的免费开源电子商务平台 (累计阅读 12,541)