Repolode
securego

securego/gosec

一款静态分析工具,扫描 Go 源代码中的常见安全漏洞和不安全写法。

Star
9,000
Fork
731
未关闭 Issue
5
最近提交
4天前

这是什么?

gosec 通过分析 Go 代码的 AST 和 SSA 表示来检查源码中的安全问题。内置的规则覆盖硬编码凭据、不安全的 API 用法、薄弱的加密与 TLS 配置、文件权限与路径处理以及黑名单导入等,每条规则都对应一个 CWE 编号。

其污点分析规则会追踪用户输入流向敏感函数的路径,覆盖 SQL、命令、模板、SMTP 等注入类问题,以及 SSRF、路径遍历、XSS、开放重定向和不安全的反序列化。发现的问题可以通过 #nosec 或 //gosec:disable 注释在代码中就地忽略,也可以按规则、路径、严重程度和置信度进行过滤。

扫描结果可导出为 text、JSON、YAML、CSV、JUnit XML、HTML、SonarQube、golint 或 SARIF 格式。工具既可以作为 GitHub Action 运行,也可以通过 go install 安装到本地。

核心功能

  • 01基于模式的规则,检测硬编码凭据、弱加密等常见 Go 安全问题
  • 02污点分析追踪用户输入流入 SQL、命令、路径、SSRF、XSS 等敏感函数的情况
  • 03支持用 #nosec 或 //gosec:disable 就地忽略误报,并可要求填写理由
  • 04支持按路径排除规则,并按严重程度和置信度过滤结果
  • 05提供 SARIF 等多种报告格式,便于接入 GitHub 代码扫描

适用场景

  • 在 CI 流水线中通过 GitHub Action 对 Go 代码执行安全检查
  • 将 SARIF 结果上传到 GitHub 代码扫描,辅助 Pull Request 审查
  • 发布前审计 Go 代码库中的注入、弱加密或不安全 TLS 配置

快速上手

  1. 1

    使用 go install 安装 gosec(需要 Go 1.25 或更高版本)

    go install github.com/securego/gosec/v2/cmd/gosec@latest
  2. 2

    扫描当前模块中的所有包

    gosec ./...

使用前须知

  • 安装和构建需要 Go 1.25 或更高版本。

收录于专题

标签

常见问题

gosec 是什么?
一款静态分析工具,扫描 Go 源代码中的常见安全漏洞和不安全写法。 gosec 通过分析 Go 代码的 AST 和 SSA 表示来检查源码中的安全问题。内置的规则覆盖硬编码凭据、不安全的 API 用法、薄弱的加密与 TLS 配置、文件权限与路径处理以及黑名单导入等,每条规则都对应一个 CWE 编号。
gosec 可以免费使用吗?用的什么许可证?
gosec 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
gosec 还在维护吗?
活跃维护中。gosec 最近一次提交是在 2026年11月3日。
gosec 适合用来做什么?
在 CI 流水线中通过 GitHub Action 对 Go 代码执行安全检查 将 SARIF 结果上传到 GitHub 代码扫描,辅助 Pull Request 审查 发布前审计 Go 代码库中的注入、弱加密或不安全 TLS 配置
gosec 怎么安装和运行?
使用 go install 安装 gosec(需要 Go 1.25 或更高版本): go install github.com/securego/gosec/v2/cmd/gosec@latest 扫描当前模块中的所有包: gosec ./...
在哪里获取 gosec?
源代码和安装说明在 GitHub 上:https://github.com/securego/gosec

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目