全部产品
Search
文档中心

代码安全:静态应用安全测试 SAST

更新时间:Jul 23, 2026

在代码发布前发现安全漏洞是保障应用安全的关键环节。SAST(Static Application Security Testing,静态应用安全测试)通过静态分析源代码,在不运行程序的情况下识别代码缺陷和安全漏洞,帮助开发团队在开发早期修复问题、降低修复成本。

功能介绍

SAST 对上传或提交的源代码进行静态分析,扫描代码中的安全漏洞和编码缺陷。与 SCA(软件成分分析)关注第三方依赖不同,SAST 聚焦于自研代码逻辑,检测以下类型的安全问题:

  • SQL 注入、命令注入等注入类漏洞

  • 跨站脚本(XSS)攻击

  • 敏感信息硬编码(如密钥、密码明文存储)

  • 不安全的加密算法使用

  • 权限控制缺陷

  • 其他 OWASP Top 10 安全风险

SAST 不需要运行代码或部署应用环境,直接分析源代码文本即可完成检测,适用于在开发阶段尽早发现并修复安全问题。

适用场景

场景

说明

代码提交前审查

在代码合入主分支前,通过 SAST 扫描发现安全漏洞,避免问题代码进入生产

定期安全巡检

对已有代码项目定期执行 SAST 扫描,持续监控代码安全状态

合规审计

满足安全合规要求,提供代码安全扫描报告作为审计依据

触发 SAST 扫描

SAST 扫描支持以下两种触发方式,根据项目的 CI/CD 环境选择:

  • 手动创建项目:适用于未接入 GitLab CI 的项目。新建项目时在扫描类型中勾选 SAST,上传代码后手动触发扫描。详细操作步骤请参见手动上传扫描。

  • 自动注册项目(GitLab CI):适用于已接入 GitLab CI 的项目。通过 GitLab CI Pipeline 自动触发,代码提交或创建 Merge Request 时自动执行 SAST 扫描。详细操作步骤请参见自动注册项目。

两种方式均在创建项目时选择扫描类型包含 SAST 即可启用静态安全分析能力。

查看 SAST 扫描结果

扫描完成后,按以下步骤查看 SAST 检测结果:

  1. 登录代码安全控制台。

  2. 在项目列表页面,找到目标项目,单击操作列的查看。

  3. 在项目的任务列表中,单击目标扫描任务操作列的查看,进入扫描结果页面。

  4. 单击 SAST 页签,查看静态应用安全测试的详细结果。

结果解读

SAST 页签展示本次扫描发现的代码安全问题列表,主要包含以下字段:

字段

说明

缺陷名称

安全问题的类型和具体说明,如"通过文件路径参数注入操作系统命令""SpEL 表达式注入导致远程代码执行"等

等级

漏洞的严重程度(严重、高危、中危、低危),帮助开发者优先处理高风险问题

CWE ID

漏洞对应的通用缺陷枚举(Common Weakness Enumeration)编号,便于关联标准缺陷分类

文件路径 / 行号

存在安全问题的源代码文件路径和行号,便于开发者快速定位问题代码

状态

缺陷的处置状态,便于跟踪修复进度

单击具体缺陷条目可查看修复建议和安全编码规范,指导开发者正确修复问题。建议优先处理严重和高危等级的漏洞,确保代码在发布前消除关键安全隐患。

常见问题

SAST 和 SCA 有什么区别?

SAST 分析项目自身的源代码,发现代码逻辑中的安全漏洞(如注入、XSS);SCA 分析项目引用的第三方开源组件,发现已知的 CVE 漏洞。两者互补,建议同时启用以获得全面的安全检测覆盖。详细对比请参见软件成分分析 SCA。

SAST 扫描需要多长时间?

扫描时间取决于代码量大小和复杂度,系统会自动完成分析并在任务列表中更新扫描状态。