Gixy-Next:NGINX 配置误配置扫描器

发布: (2026年1月3日 GMT+8 01:54)
4 分钟阅读
原文: Dev.to

Source: Dev.to

什么是 Gixy‑Next?

Gixy‑Next 是 “Gixy 系列” NGINX 配置分析器的一个维护分支。它会静态扫描你的配置(无需运行 NGINX),并以严重程度等级和可操作的上下文报告发现的问题。

它最初是 Yandex 的原始 Gixy(2017 年首次发布)的分支,而原项目已不再维护,且在现代 Python/NGINX 环境下表现不佳。Gixy‑Next 的存在是为了保持项目健康:支持现代 Python、修复 bug、改进检测逻辑,并专注于可维护、可审查的改动。

快速开始

安装

pip3 install gixy-next
# or, if you use uv:
uv pip install gixy-next

运行(默认扫描 /etc/nginx/nginx.conf

gixy

扫描指定文件

gixy /opt/nginx.conf

提示:扫描 完整渲染 的配置(包括已解析的 include)

NGINX 配置通常分散在许多 include 文件中。一个可靠的做法是导出完整的渲染后配置,并在运行 NGINX 的系统之外的另一台机器上扫描该产物:

# 在一台机器上导出完整渲染的 NGINX 配置
nginx -T > ./nginx-dump.conf

# 在另一台机器上,仅使用该单文件运行 gixy
gixy ./nginx-dump.conf

# 或通过 stdin:
cat ./nginx-dump.conf | gixy -

它能捕获的内容(示例)

Gixy‑Next 附带大量插件,能够检测各种问题。以下是你可能关心的几个示例:

  • HTTP 响应拆分风险
  • 类 SSRF 的代理错误配置
  • Host 头部伪造风险
  • Alias 路径遍历陷阱
  • Referer/Origin 校验
  • 未锚定的正则表达式模式及 ReDoS 风险
  • 高危 DNS 解析器配置
  • 通过 server_tokens 泄露版本信息
  • 看似正常但误导的模式,如 location 中的 if 用法

完整插件列表可在 Gixy‑Next 文档 中查看。关键在于:它能发现那些容易出错或完全被忽视的问题。

调整检测范围:只运行你想要的检查

运行特定子集的检查

gixy --tests http_splitting,ssrf,version_disclosure

跳过噪声检查

gixy --skips low_keepalive_requests,worker_rlimit_nofile_vs_connections

按严重程度过滤(复合 -l

# -l  = LOW 及以上
# -ll = MEDIUM 及以上
# -lll = 仅 HIGH
gixy -ll

输出格式:对人友好,对机器友好

纯文本(无 ANSI 颜色)

gixy -f text

JSON(非常适合 CI 流水线和仪表盘)

gixy -f json ./nginx-dump.conf

JSON 包含 pluginseverityfilelinereason 以及针对具体检查的 reference 链接等字段。

我喜欢这种方式的原因

  • 它补充代码审查:审查者关注意图,扫描器捕获模式。
  • 将“部落知识”式的加固规则转化为可重复的检查。
  • 适配现代工作流:本地运行、CI 中运行、随时间跟踪。

贡献 / 反馈

如果你遇到某个配置模式应该被检测却未被发现,请提交一个包含最小可复现片段的 Issue。欢迎新的插件和改进。

Back to Blog

相关文章

阅读更多 »

RGB LED 支线任务 💡

markdown !Jennifer Davishttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex:我为何构建

介绍 大家好。今天我想分享一下我是谁、我在构建什么以及为什么。 早期职业生涯与倦怠 我在 17 年前开始我的 developer 生涯……