Gixy 是一款专为 Nginx 配置设计的静态分析工具,通过解析语法和语义规则识别 SSRF、HTTP 拆分、路径遍历等安全漏洞及 add_header 重复定义等逻辑疏漏,支持插件化检测、CI/CD 集成与定制化配置,报告需结合上下文研判。
Gixy 是一款专为 Nginx 配置设计的静态分析工具,不运行服务、不依赖环境,仅通过解析配置语法和语义规则,就能识别出 SSRF、HTTP 拆分、路径遍历、主机头欺骗等典型安全漏洞,也能发现如
重复定义、
空白配置等逻辑疏漏。它的价值不在“替代人工”,而在把经验规则固化为可复用、可审计、可集成的检测能力。
核心检测能力:聚焦真实风险场景
Gixy 的插件机制围绕 Nginx 实际运行时行为建模,不是简单字符串匹配:
SSRF 检测
:分析
中是否直接拼接了未过滤的变量(如
),并结合内置变量规则库判断该变量是否可能构造内网地址
路径遍历防护
:检查
与
路径末尾斜杠是否匹配,同时验证变量内容是否被正则约束(如
必须符合
)
HTTP 拆分防御
:识别变量是否可能包含
或
,例如对
这类用户可控参数进行边界检查
逻辑错误识别
:如
插件会追踪同一上下文中同名响应头的多次定义;
会被标记为无效保护
快速落地:安装与基础扫描
无需复杂部署,开箱即用:
Nginx
在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。
下载
用 pip 安装:
,安装后执行
可查看支持的插件列表和输出格式
默认扫描
,也可指定任意配置文件:
推荐使用 JSON 格式输出以便后续处理:
若配置含 include,Gixy 会自动递归解析全部被引用文件,无需额外操作
进阶用法:定制化与集成
满足团队协作与工程化需求:
启用/禁用特定插件
:通过命令行
精确控制检测范围
配置插件行为
:部分插件支持自定义参数,例如调整 SSRF 检测中认为“危险”的内网网段范围
接入 CI/CD
:在 Jenkins 或 GitHub Actions 中加入 Gixy 步骤,失败时阻断发布;配合
可对接主流 IDE 和代码扫描平台
更新检测规则
:插件代码位于
目录,可直接替换或新增 .py 文件;Docker 用户拉取最新
镜像即可同步规则
理解结果:避免误报与过度响应
Gixy 的报告不是最终结论,而是需要结合上下文判断的线索:
高危告警(如 alias_traversal)需核对 location 和 alias 是否确实存在路径拼接歧义,参考其测试用例中的
(误报样例)对比分析
某些“问题”是合理设计,例如为兼容旧接口而保留无尾斜杠的 location,此时应通过文档注释或配置白名单机制说明
变量风险等级取决于来源——
默认可信,
默认不可信,Gixy 的
明确定义了每类变量的字符边界
建议将 Gixy 扫描纳入 PR 检查流程,让安全反馈前置,而非上线后补救
add_headervalid_referersproxy_pass$arg_urlaliaslocation$uri/[^\x20\t]*\n\r$arg_redirectadd_header_redefinitionvalid_referers nonepip install gixygixy --help/etc/nginx/nginx.confgixy /path/to/site.confgixy --format json /etc/nginx/conf.d/app.conf > report.json--enable-plugin ssrf --disable-plugin host_spoofing--format checkstylegixy/plugins/yandex/gixysimple_fp.conf$remote_addr$arg_xxxbuiltin_variables.py