Skip to content

✅ validate ​

✅ 校验 · 🟢 stable

简介 ​

cvss validate 检查 CVSS 向量字符串,一次性报告所有缺失或非法指标(不会在首个错误处短路)。校验通过时打印 Valid [PASS] 及版本与完整性;失败时列出所有问题。

工作原理 ​

字符串被解析,每个指标在一次不短路校验中检查,因此所有缺失与非法指标一并报告——只有当集合完整且良构时才 PASS。

用法 ​

bash
cvss validate [vector-string] [flags]

Flags ​

Flag类型默认值说明
--formatstringtext输出格式:text 或 json
-h, --helpboolfalsevalidate 的帮助信息

示例 ​

bash
cvss validate "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
text
Valid [PASS]
  Version: 3.1
  Complete: true
bash
cvss validate "bad"
text
Validation failed: validation failed: metric I: is required but not set; metric A: is required but not set

一次性看到全部错误

由于校验不会短路,单次运行即可暴露所有缺失指标——在批量清理畸形向量时很有用。上面的非法示例在一条消息里同时报告了 I 和 A。

底层 API ​

调用 parser.ParseAndValidate,它在一步内完成解析与校验,向量非法时返回列出所有问题的错误。

go
import (
    "fmt"
    "log"

    "github.com/scagogogo/cvss-skills/pkg/parser"
)

cv, err := parser.ParseAndValidate("CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H")
if err != nil {
    log.Fatalf("Validation failed: %v", err) // 列出所有缺失/非法指标
}
fmt.Printf("Valid [PASS]\n  Version: %s\n  Complete: %v\n", cv.Version(), cv.IsComplete())

相关 ​

基于 MIT 许可证发布。