Gixy 是专为 Nginx 配置设计的静态分析工具,不运行服务、不依赖环境,通过解析语法和语义规则识别 SSRF、路径遍历、HTTP 拆分、Host 头欺骗、add_header 重复定义及 valid_referers 空白配置等风险,并支持插件化控制、CI/CD 集成与上下文研判。

Gixy 是专为 Nginx 配置设计的静态分析工具,不运行服务、不依赖环境,仅靠解析配置语法和语义规则就能识别真实运行风险。它不是用来替代人工审查的,而是把经验沉淀成可复用、可审计、可集成的检测能力。
能查哪些典型风险
Gixy 聚焦实际攻击路径建模,不是简单字符串匹配:
- SSRF(服务器端请求伪造):检查 proxy_pass 是否直接拼接未过滤变量(如 $arg_url),并判断该变量是否可能构造内网地址
- 路径遍历:验证 alias 与 location 路径末尾斜杠是否匹配,同时确认变量(如 $uri)是否被正则约束为安全字符集
- HTTP 拆分:识别用户可控变量(如 $arg_redirect)是否可能含 \n 或 \r,防止响应头注入
- Host 头欺骗:标记使用 $http_host 替代 $host 的不安全写法
- add_header 重复定义:追踪同一作用域下同名响应头多次设置,避免覆盖安全头
- valid_referers 空白配置:指出 valid_referers none 这类形同虚设的保护
快速上手扫描
安装和首次运行非常轻量:
- 执行 pip install gixy 安装,支持 Python 3.5+(推荐 3.6+)
- 默认扫描 /etc/nginx/nginx.conf,也可指定任意路径:gixy /path/to/app.conf
- 配置含 include 时,Gixy 自动递归解析全部被引用文件,无需额外操作
- 建议用 JSON 格式输出便于后续处理:gixy --format json /etc/nginx/conf.d/app.conf > report.json
进阶控制与工程化集成
满足团队协作和 CI/CD 场景需求:
- 按需启用或禁用插件:gixy --enable-plugin ssrf --disable-plugin host_spoofing
- 部分插件支持自定义参数,例如调整 SSRF 检测中“危险内网段”的范围
- 接入 Jenkins 或 GitHub Actions:失败时阻断发布;配合 --format checkstyle 可对接主流 IDE 和扫描平台
- Docker 用户可直接拉取最新镜像:docker run --rm -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf yandex/gixy /etc/nginx/nginx.conf
怎么看报告才不踩坑
Gixy 的结果是线索,不是判决书,需要结合上下文判断:
- 例如检测到 $uri 可能参与 alias 路径拼接,要确认该 location 是否加了 internal、是否限制了 method、是否有前置 rewrite 过滤
- 标记 add_header 重定义,需看父块和子块的实际生效逻辑,有时是故意覆盖(如子 location 关闭 CSP)
- 发现 valid_referers none,要核实业务是否真不需要 Referer 验证,还是配置遗漏
- 所有插件源码在 gixy/plugins/ 目录下,可直接阅读逻辑或定制修改











