Snyk Code 是 Snyk 公司推出的静态应用安全测试(SAST,即对源代码做静态分析以发现安全漏洞的技术)产品,核心是 2020 年收购的 DeepCode 团队打造的深度学习语义分析引擎。它不依赖正则规则做关键词匹配,而是通过机器学习模型理解代码的语义与数据流,在 IDE、命令行与 CI/CD 中实时定位 SQL 注入、命令注入、XSS、路径穿越、反序列化等源码级漏洞,并给出数据流路径与修复建议。它与 Snyk Open Source(依赖扫描)、Snyk Container(镜像扫描)在统一平台上协作,覆盖“源代码—依赖—运行时”三层风险。 Snyk Code 面向“左移”场景:让安全扫描从上线前集中审计前移到开发者写代码时的实时反馈,并能在 merge request 上自动卡点。配合 Priority Score(综合严重度、可达性等因素给出的 0–1000 分优先级评分),团队可以优先修复真正能被攻击者打通的链路。本篇按“速览卡—安装—上手—能力详解—生产部署—选型对比—场景—误区—面试题—资源”展开,按步骤操作可在 10 分钟内跑通首次扫描。
掌握 Snyk Code 是 DevSecOps 工程师、安全工程师与 AI 应用开发者的高频技能:能把安全检测嵌入日常编码与 CI,以分钟级成本获得漏洞闭环管理能力。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 Snyk Code:从“上线前集中审计”到“编码时实时告警”
传统 SAST 工具的典型问题是误报高、门槛高、扫描慢:规则库维护成本高,开发者每天面对大量无法复现的告警;对构建环境有要求,全量扫描一轮往往耗时数小时到数天。结果是安全团队每周出报告、开发团队批量“销账”,漏洞从引入到发现经常跨越数周;修复时又缺乏上下文,需要安全专家逐条解读告警。随着 AI 辅助编码普及,AI 生成代码可能引入的漏洞更多、更隐蔽,人工审查无法规模化,传统方案更难支撑。
Snyk Code 把分析任务交给经过大型代码库训练的深度学习模型,直接在源码语义与数据流层面检测漏洞。它不需要完整编译,增量分析在秒级完成;IDE 插件在后台实时扫描,开发者一边写一边看到问题标注、数据流路径(从输入端点到危险函数调用)与修复建议;CLI 一条命令接入 CI,高危漏洞自动阻断合并。Snyk 官方宣称其误报率约为传统 SAST 工具的 1/6——这是厂商数据,但“低误报 + 可解释的数据流”确实是它与传统工具最明显的体验差异。
与同样流行的 Semgrep、CodeQL 相比,Snyk Code 更强调开箱即用与开发者优先:不需要学习查询语言、不需要自研规则,登录后即可获得覆盖 OWASP Top 10 与大量 CWE(通用缺陷枚举,安全业界对漏洞类型的统一编号体系)的检测能力,同时与 Snyk 的依赖扫描、容器扫描共享平台,便于团队做统一安全闭环。
安装与环境配置:账号 + CLI + IDE 三步就绪
第一步,注册账号。Snyk Code 的分析在云端执行,需先在 [snyk.io](https://snyk.io) 注册(免费层即可开箱测试)。第二步,安装并认证 CLI。推荐用 npm 全局安装,或 macOS 用 Homebrew、Windows 用 Scoop。第三步,验证安装并跑通首次扫描。以下命令可直接复制执行:
IDE 集成(以 VS Code 为例):在扩展市场安装 "Snyk Security" 插件,打开项目后按提示登录 Snyk 账号,插件会在后台对当前工作区做增量扫描并在代码行内标注问题。JetBrains 系(IntelliJ IDEA、WebStorm、PyCharm 等)同样安装 Snyk Security 插件,Eclipse 与 Visual Studio 也有官方插件。注意:snyk code test 只分析第一方源码,运行前无需构建,但要求项目目录可读且本机已通过认证。
# 1. 安装 Snyk CLI(任选其一)npm install -g snyk # 需 Node.js 环境brew install snyk # macOSscoop install snyk # Windows # 2. 认证:会打开浏览器,登录后自动绑定本机snyk auth# 无人值守/CI 环境改为设置 token:export SNYK_TOKEN=<你的token> # 3. 验证安装snyk --version # 4. 进入项目目录执行 SAST 扫描(首次需上传代码,稍等片刻)cd /path/to/your/reposnyk code test
快速上手:10 分钟跑通首次安全扫描
最小可用流程:注册账号 → 认证 CLI → 在测试仓库执行 snyk code test → 在 Web 控制台查看完整报告。操作步骤如下:
1. 打开 [snyk.io](https://snyk.io) 注册并登录,免费层即可使用 Snyk Code。
2. 在终端执行 snyk auth,浏览器登录后回到终端按提示完成绑定。
3. 准备一个包含不安全代码的测试仓库(例如故意拼接 SQL 的 Node.js/Python 项目),在仓库根目录执行 snyk code test。
4. 终端输出漏洞列表:每条包含漏洞类型(如 SQL Injection)、文件行号、严重级别、描述与数据流摘要;存在漏洞时命令以退出码 1 结束。
5. 登录 [app.snyk.io](https://app.snyk.io),打开同一项目的 Web 报告,查看数据流路径、Priority Score 与修复建议。
6. 进阶:用 snyk code test --severity-threshold=high 只看高危及以上;用 snyk code test --json > result.json 导出机器可读结果。
把扫描接入 GitHub Actions 的官方集成示例(真实可用的完整 workflow):
在仓库 Settings → Secrets 中配置名为 SNYK_TOKEN 的密钥(值来自 Snyk 账号的设置页),之后每次 push 与 PR 都会自动扫描,高危漏洞导致任务失败。
# .github/workflows/snyk-code.ymlname: Snyk Code Scanon: push: pull_request:jobs: security: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: snyk/actions/setup@master - name: Run Snyk Code run: snyk code test --severity-threshold=high env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
核心能力详解:5 大支柱能力
支柱一:DeepCode AI 语义分析引擎。这是 Snyk Code 与正则规则型 SAST 的本质差异。模型经过海量开源代码与安全缺陷样本训练,理解变量赋值、函数调用关系与跨文件数据流,能够识别“用户输入从 HTTP 参数流入 SQL 查询”这类真实可触发的漏洞,而不是靠特征串匹配;对未出现过的代码模式也具备一定泛化检测能力。
支柱二:实时 IDE 扫描与修复指引。在 VS Code / JetBrains / Eclipse / Visual Studio 中,插件对工作区做后台增量扫描,改动文件后数秒内更新结果。问题在代码行内标注,点击可展开数据流路径、修复建议以及 Snyk Learn 对应漏洞类型的教学链接;开发者拿到的是具体修改方向,而非一个冰冷的 CWE 编号。
支柱三:漏洞优先级评分。每个漏洞的 Priority Score(0–1000)综合 CVSS 严重度、可达性(该路径在当前代码库中是否真实存在)与可利用性给出排序。与“按 CVE 严重度一刀切”相比,团队可直接聚焦能被攻击者触发的链路,避免把精力花在不可达的理论缺陷上。
支柱四:原生 CI/CD 与代码托管集成。CLI 可接入 GitHub Actions、Jenkins、GitLab CI、CircleCI 等;仓库导入 Snyk 后可开启 PR Check(在合并请求上自动检测新引入漏洞)、统一管理忽略项、定时全量监控。扫描结果支持 JSON、SARIF 格式导出,可接入 GitHub Code Scanning 等下游系统。
支柱五:多语言与多框架覆盖。官方支持 JavaScript/TypeScript、Python、Java/Kotlin、C#、Go、PHP、Ruby、Swift、Scala、C/C++、Apex 等十余种语言的检测,覆盖 OWASP Top 10 与常见 CWE 类别(注入、认证缺陷、敏感信息泄露、加密问题、不安全的反序列化等)。规则与模型由云端引擎持续更新,本地无需维护任何规则库。
生产部署与监控:从上线到运维
部署方式一:CI 门禁。最小门禁就是上面那份 GitHub Actions workflow,把 --severity-threshold 设为 high 或 critical,任务失败即阻断合并。GitLab CI 中先安装 CLI(npm install -g snyk 或下载官方二进制),再在 .gitlab-ci.yml 中执行 snyk code test --severity-threshold=high,token 通过 CI/CD 变量注入。Jenkins 同理,在构建步骤中调用同一命令即可。
部署方式二:SCM 原生集成。把 GitHub/GitLab/Bitbucket 仓库导入 Snyk,平台自动发现项目并执行 Snyk Code 扫描;开启 PR Check 后,新提交引入的漏洞直接在合并请求页提示,无需自建 runner。企业版还支持与 Jira、Slack 联动创建工单与告警。
可观测性。Snyk Web 界面提供项目级扫描报告、漏洞趋势与忽略/豁免审计;CLI 与 REST API 可拉取各项目最新扫描状态与漏洞清单,供安全团队做 KPI 报表;SARIF 输出可把结果汇入 GitHub Code Scanning / Azure DevOps 安全仪表盘。建议把 CI 扫描的 JSON 输出归档到制品库,便于事后追溯与误报复盘。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>代码会上传云端:Snyk Code 在 Snyk 云端分析,私有源码会离库;强合规项目先评估数据策略(企业版有更多管控选项),并让团队知情。</li><li>别拿它当依赖扫描:snyk code test 只查第一方源码;第三方依赖用 snyk test,镜像用 snyk container test,三个子命令职责不同。</li><li>首次扫描耗时较长:大型仓库完整上传分析可能需数分钟,CI 超时留足余量;后续增量扫描明显更快,勿因超时误判为死锁。</li><li>token 泄漏:SNYK_TOKEN 必须用 GitHub Actions secrets / CI 变量注入,禁止写入仓库或打印在日志中。</li><li>Monorepo 噪声控制:默认扫描目录树下全部源码,多项目大仓库建议按子项目分别执行,并用 Snyk UI 或 .snyk 文件管理忽略项,降低处理负担。</li></ul>
| 维度 | Snyk Code | Semgrep | GitHub CodeQL | SonarQube |
|---|---|---|---|---|
| 定位 | AI 语义分析驱动的云原生 SAST,开发者优先 | 开源规则引擎 + 可编程静态分析(含 Pro 数据流) | 查询驱动的企业级 SAST,深度集成 GitHub | 代码质量与安全一体化平台(Clean Code) |
| 编排范式 | 云端深度学习引擎执行,登录即用,无需本地规则维护 | 本地规则/数据流引擎,规则文件即编排单元 | 代码编译为数据库后运行 QL 查询编排 | 服务端规则引擎 + 质量门禁编排 |
| 类型约束 | 需联网上传源码,云端执行,免费层有次数限额 | 可本地离线运行;效果依赖规则与项目语言匹配 | 需构建生成数据库;许可绑定 GitHub 计划 | 需部署服务器与数据库,自托管成本高 |
| 学习曲线 | 低:登录即用,无需学查询语言 | 中:基础规则易写,数据流规则需学习 | 高:QL 查询语言有明显门槛 | 中:规则与质量门禁配置复杂 |
| 生态集成 | IDE 全系插件、CI/CD、GitHub/GitLab/Bitbucket | IDE 插件、CI/CD、Semgrep Registry | GitHub 原生集成、Code Scanning、CLI 与 CI | 广泛 IDE/CI 集成、SonarCloud |
| 生产部署 | 纯云端 SaaS(代码需上传) | 本地/CI 完全离线运行,Pro 为托管版 | 复用 GitHub Actions;独立 CLI 需相应许可 | 自托管 SonarQube Server 或云版 SonarCloud |
| License | 商业闭源(免费层 + Team/Enterprise) | 引擎 LGPL-2.1 开源,Pro/Enterprise 收费 | 商业授权(GitHub 计划内可用,研究免费) | 社区版 LGPL-3.0,商业版收费 |
| 适合谁 | 想开箱即用、低误报、与 Snyk 平台联动的团队 | 需要本地执行、自定义规则、预算有限的团队 | GitHub 重度用户、有安全研究能力、需深度定制查询 | 需要代码质量与安全治理一体化的中大型企业 |
选型建议:预算敏感且要求规则完全可控,选 Semgrep 并自建规则库;团队已深度使用 GitHub(Advanced Security 计划内),选 CodeQL 最顺滑;已有代码质量平台或需自托管合规,选 SonarQube。若你追求开发者体验、低误报与快速接入,且能接受代码上传云端的隐私前提,Snyk Code 是选项中上手成本最低的。四者在 IDE 与 CI 门禁上均可落地,差异主要在分析深度、成本模式与定制能力。
版本迭代
Snyk Code 是持续迭代的云端 SaaS,没有传统语义化版本号,历史以功能里程碑为坐标:2020 年收购 DeepCode 获得机器学习引擎,同年公开测试,2021 年正式商用,此后沿“语言扩展 → AI 修复 → 平台整合”主线演进,配套的 Snyk CLI 保持 1.x 高频发布(截至训练数据,可能已有更新版本)。
| 版本 | 时间 | 变化 | 提升 |
|---|---|---|---|
| DeepCode 引擎收购 | 2020-06 | Snyk 收购 DeepCode,获得机器学习语义分析引擎 | 为 Snyk Code 奠定 AI 分析能力基础 |
| Snyk Code 公测(Beta) | 2020 | SnykCon 2020 发布 AI 驱动 SAST 公测版 | 首批支持 Java、JavaScript、TypeScript、Python,开放 IDE 与 CLI 试用 |
| Snyk Code 正式可用(GA) | 2021 | 面向全部客户开放商用 | 接入统一 Snyk 平台,支持项目导入、PR 检查与免费层 |
| 多语言与开放标准扩展 | 2022 | 语言覆盖大幅扩展,CLI 能力增强 | 陆续新增 C/C++、Kotlin、Swift、Scala 等语言;CLI 支持 SARIF/JSON 输出 |
| DeepCode AI 修复发布 | 2023 | DeepCode AI 产品家族发布 | 引入 AI 修复建议,降低漏洞修复成本;语义检测能力增强 |
| 平台整合与持续迭代 | 2024–2025 | 与 Snyk AppRisk 等安全管理产品整合 | 安全治理面扩大,扫描性能与误报率持续优化(截至训练数据,可能已有更新版本) |
Snyk Code 没有 MMLU 这类统一的权威公开评测基准,厂商宣称的“误报率为传统 SAST 的约 1/6”主要来自官方对比材料与客户案例。选型时建议用自有代码库做 A/B 实测:同一仓库分别跑 Snyk Code、Semgrep、CodeQL,对比真阳性、误报与定位耗时。从迭代主线看,产品正从“能扫出漏洞”走向“能自动修复 + 融入治理流程”,AI 修复与平台整合是最值得关注的两条演进方向。
AI 应用场景
场景一:编码阶段的实时漏洞拦截(IDE 左移)
阶段:代码安全扫描 / Shift-Left 安全测试
解决的问题:新增代码漏洞平均要等 PR 审查、QA 或上线前扫描才发现,修复成本高。Snyk Security IDE 插件在后台做实时增量扫描,开发者写代码时即看到行内漏洞标注、数据流路径与修复建议,漏洞在进入代码库之前就被拦截。
具体案例:某 Web 团队在 VS Code 中统一安装 Snyk Security 插件,扫描在后台增量执行,新增代码中的 SQL 拼接、XSS 等问题在提交前即被标注并修复;配合 Snyk Learn 漏洞教程边修边学。官方宣称其误报率约为传统 SAST 的 1/6,团队实际把安全返工从“等审查意见”变成“编码时自纠”,PR 返工明显减少。
场景二:CI/CD 安全门禁(PR 阻塞 + 全量监控)
阶段:持续集成安全测试 / 制品门禁
解决的问题:安全测试往往不在流水线中或只放在发布末尾。Snyk Code 通过 CLI 与托管 PR Check 把 SAST 变成每个 commit 的自动门禁,高危以上漏洞直接失败构建。
具体案例:某金融科技团队在 GitHub Actions 中运行 snyk code test --severity-threshold=high,token 以 SNYK_TOKEN 密钥注入;每次 PR 自动扫描,高危漏洞在合并前被拦截;历史仓库通过平台定时全量扫描持续出报表。漏洞从引入到发现的窗口从数周缩短到提交后的几分钟。
场景三:为 AI 生成代码把关
阶段:生成式 AI 代码安全审查
解决的问题:Copilot 等 AI 编码助手可能生成含 SQL 注入、硬编码密钥、不安全反序列化等缺陷的代码,人工审查难以为继。Snyk Code 对 AI 生成代码做自动化安全扫描,先验证、后合入。
具体案例:某 AI 应用团队规定 AI 辅助生成的代码片段合入前必须通过 Snyk Code 扫描;扫描器对生成代码中不安全的输入校验与危险函数调用给出精确定位和修复建议,明显减少了 AI 生成代码引入的漏洞逃逸,安全评审成本同步下降。
常见误区
误区我装了 Snyk 之后所有安全问题都能管,依赖漏洞、容器镜像、密钥泄漏它都能扫出来。
正解Snyk 平台各产品各管一段:Snyk Code 只做第一方源码的 SAST 静态分析;第三方依赖漏洞由 Snyk Open Source(snyk test)负责;容器镜像与 IaC 分别由 Snyk Container、Snyk IaC 负责。在 CI 里要按需组合子命令,而不是只跑一个 snyk code test 就以为全覆盖。
为何常见:Snyk 把多产品整合在一个平台与一个 CLI 里,入口统一,容易让人误以为是一个全能力引擎。
误区Snyk Code 是 AI 引擎,应该可以在本地离线扫描,断网也能用。
正解Snyk Code 的分析引擎运行在 Snyk 云端,snyk code test 会把源码文件上传到 Snyk 服务器执行分析,需要联网与账号认证。如果必须在受控网络内离线分析,应改用 Semgrep(本地规则引擎)或 SonarQube(自托管),这是选型时关键的合规分叉点。
为何常见:CLI 是本地安装的,用户自然以为扫描也在本地完成;Snyk 隐私文档明确写了代码会上传,但多数人不看。
误区我在 CI 里跑了 `snyk code test` 却没有发现有依赖漏洞,是不是我配置错了?
正解没有配置错,而是职责不同。snyk code test 只检测仓库里的第一方源码漏洞;依赖清单(package-lock.json、pom.xml、requirements.txt 等)的已知漏洞扫描要用 snyk test,两个命令的漏洞库、修复方式与输出格式都不同。
为何常见:Snyk CLI 各子命令名字相近(snyk test 与 snyk code test)且都输出“漏洞列表”,不仔细看命令说明极易混淆。
误区Snyk 给了 0–1000 的优先级分,我按分数从高到低修就行,分数高的最危险。
正解Priority Score 是建议而非绝对真理。它综合严重度、可达性、可利用性与暴露面,分数低的路径可能因代码中不可达而确实不紧急;但修复资源分配还应结合业务上下文(暴露面、资产价值、合规要求)。Snyk UI 按分数排序只是帮你聚焦,替代不了安全评审。
为何常见:平台把“分数”做成最显眼的排序字段,用户容易把它当成唯一决策依据。
误区Snyk CLI 在 GitHub 上是开源的,所以 Snyk Code 也是开源免费的,可以随便用。
正解Snyk CLI 代码以 Apache-2.0 开源,但 Snyk Code 的引擎与云端分析服务是商业闭源 SaaS,按“免费层 + 订阅”计费;免费层有扫描次数限制,团队或企业高频使用需要购买 Team/Enterprise 计划。开源客户端与闭源云端能力是两回事。
为何常见:看到一个工具的 CLI 仓库是开源的,容易默认整个产品都开源;Snyk 的商业模式正是“开源客户端、闭源云端能力”。
面试题
Q1. Snyk Code 属于下列哪一类安全测试?
- A.依赖与供应链成分分析(SCA)
- B.源码级静态应用安全测试(SAST)← 正确答案
- C.运行时动态应用安全测试(DAST)
- D.容器与镜像的漏洞扫描能力
答案:B。Snyk Code 针对第一方源码做静态分析,属于 SAST。SCA 依赖扫描由 Snyk Open Source 的 snyk test 负责;DAST 针对运行中的应用;容器镜像扫描是 Snyk Container 的职责。四者常被整合进同一条 CI 流水线,但定位完全不同。
Q2. 在无人值守 CI 环境中运行 snyk code test 前必须配置?
- A.云数据库连接字符串与密码
- B.Snyk 访问令牌 SNYK_TOKEN← 正确答案
- C.企业微信机器人 Webhook
- D.前端打包工具链配置文件
答案:B。Snyk Code 的云端分析需要身份认证,CI 中通过环境变量 SNYK_TOKEN 注入 API Token。它不依赖数据库、打包工具或消息推送配置;认证是 snyk code test 能执行的唯一前置硬条件。
Q3. 下列哪条命令可以在全局安装 Snyk CLI?
- A.npm install -g snyk← 正确答案
- B.pip install snyk-code
- C.apt install snyk-scanner
- D.gem install snyk-scan
答案:A。官方推荐的安装方式包括 npm(npm install -g snyk)、Homebrew(brew install snyk)与 Scoop。pip/apt/gem 不存在对应的官方包名,安装后也无法获得 snyk 命令。
Q4. Snyk Code 的漏洞分析实际在哪里执行?
- A.本机 CLI 进程内离线执行
- B.Snyk 云端 AI 分析引擎← 正确答案
- C.IDE 插件内置的本地规则库
- D.项目自带的 linter 插件
答案:B。Snyk Code 把源码文件上传到 Snyk 云端,由 DeepCode AI 引擎做语义与数据流分析,CLI/IDE 只是客户端。这一点决定了它需要联网与认证,也让强合规场景必须评估代码离库风险。
Q5. 只让高危及以上漏洞使 CI 失败,应使用哪个参数?
- A.--severity-threshold=high← 正确答案
- B.--fail-on=high-only
- C.--only-severity=critical
- D.--block-level=high
答案:A。snyk code test --severity-threshold=high 表示只报告 high/critical 漏洞,存在时命令以非零退出码失败。--fail-on 是 Snyk Open Source 家族的参数;C、D 不是 Snyk CLI 的真实参数。
Q6. 需要检查第三方依赖漏洞时,应运行哪个命令?
- A.snyk code test
- B.snyk test(Open Source)← 正确答案
- C.snyk iac test
- D.snyk container test
答案:B。snyk test 对应 Snyk Open Source,扫描 package-lock.json、pom.xml、requirements.txt 等依赖清单中的已知漏洞;snyk code test 只查第一方源码;snyk iac test 查 IaC 配置;snyk container test 查容器镜像。
Q7. Snyk Code 与传统正则规则型 SAST 的本质差异是?
- A.用深度学习做语义与数据流分析← 正确答案
- B.扫描速度一定快于所有工具
- C.保证不产生任何漏报误报
- D.无需上传代码到任何服务器
答案:A。Snyk Code 的 DeepCode AI 引擎通过模型理解变量绑定、跨文件调用与数据流,能识别真实可达的漏洞链路;正则规则靠特征串匹配。B/C 是绝对化说法,任何扫描器都无法保证;D 与产品实际架构(云端分析)相反。
Q8. 下列哪些属于 Snyk Code 官方支持的集成方式?
- A.VS Code / JetBrains IDE 插件← 正确答案
- B.GitHub Actions / Jenkins 流水线← 正确答案
- C.SARIF 格式的结果导出← 正确答案
- D.SMTP 协议在邮件中的展示
答案:ABC。Snyk Code 提供 IDE 插件、CLI 与各主流 CI/CD 集成,并支持 JSON/SARIF 导出对接 GitHub Code Scanning 等下游系统。SMTP 是邮件投递协议,Snyk 通过平台通知与 Webhook 告警,不会在协议层展示漏洞详情。
Q9. Snyk Code 报告一个漏洞时通常提供哪些信息?
- A.漏洞类型与对应 CWE 编号← 正确答案
- B.从输入源头到危险调用的数据流路径← 正确答案
- C.修复建议与 Snyk Learn 教学链接← 正确答案
- D.线上生产环境的完整访问日志
答案:ABC。Snyk Code 的漏洞详情包含类型/CWE、数据流路径(source→sink)、修复建议,并链接 Snyk Learn 对应课程。它做的是源码静态分析,不接触线上运行日志,那是 APM/日志平台的能力。
Q10. 影响 Snyk Code Priority Score(优先级分数)的因素包括?
- A.漏洞严重度与 CVSS 评分← 正确答案
- B.漏洞在代码中的可达性分析← 正确答案
- C.漏洞可利用成熟度与暴露面← 正确答案
- D.代码仓库的每日提交次数
答案:ABC。Priority Score 由 Snyk 综合 CVSS 严重度、可达性(当前代码中该路径是否可被输入触达)、可利用成熟度与暴露面给出 0–1000 的排序分,用于决定修复顺序。提交次数与漏洞风险无直接关系,不属于评分因素。