背景:安全组同学使用固定user-agent去扫描我们的网站,造成告警误报,需要将相关扫描资源的状态码修改,避免无效告警
思路:在nginx请求的header_filter_by_lua阶段,将请求状态码修改为自定义状态码

直接上代码,将以下代码写入配置文件xxx.lua,在相对应的域名下引用就可以了:
header_filter_by_lua_file "xxx.lua";

local log_time = os.date("%Y-%m-%d %X",os.time())local ngx_lua_ua_log = "/data/nginx/log/sec.lua.log"local status = ngx.var.statuslocal user_agent = ngx.var.http_user_agentlocal host = ngx.var.hostlocal function add_quote(str)    return string.format('"%s"', str)endlocal function logging(log_file, msg)    file = io.open(log_file, "a+")    file:write(msg)    file:flush()    file.close()endif user_agent == "xxx" and ngx.status ~= 200 then    ngx.status = "211"    local msg = table.concat({        add_quote(log_time),        add_quote(host),        add_quote(user_agent),        add_quote(ngx.status),        "\n"    }, " ")    logging(ngx_lua_ua_log, msg)else    returnend

经过测试,所有以xxx的user-agent且状态码不为200的请求都修改为了”211“,具体情况,可以自己修改;

©著作权归作者所有:来自51CTO博客作者M玺的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得

赞赏

0人进行了赞赏支持

更多相关文章

  1. 使用NID修改DBID和DBNAME实验
  2. ORA-00600: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
  3. 容器无法启动,修改Nginx配置文件的方法
  4. 【DB笔试面试728】在Oracle中,如何修改RAC中的主机名?
  5. HTTP状态码及说明
  6. Spring Data开发手册|Java持久化API(JPA)需要了解到什么程度呢?
  7. 紫枫术河 imx6 uboot的mtd分区总结(rootfs为ubi文件系统) imx6 ubo
  8. 【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?
  9. xshell连接服务器提示拒绝密码

随机推荐

  1. 【第814期】你不懂JS:ES6与未来 语法(下)
  2. 2016,我做了什么?
  3. Android(安卓)本地代码如何输出日志
  4. RocketMQ 源码分析 —— Message 发送与
  5. 【早读汇】上海@jean-lee《ES6标准入门》
  6. 【第773期】你不懂JS:行为委托
  7. 浅谈Android开机启动速度优化
  8. 【第824期】小公司的一年,一起看看小公司
  9. 【第786期】深入了解 JavaScript 中的 fo
  10. 早读君有约