Skip to content

🎲 random ​

CVSS v3.0CVSS v3.1文本 + JSON

简介 ​

cvss random 生成随机 CVSS 向量,用于测试或演示。默认只输出基础指标。用 --temporal 加入时间指标,或用 --full 同时加入时间与环境指标。默认版本为 3.1;加 --cvss-version 3.0 取 v3.0。加 --score 可在向量之外同时打印计算出的评分与严重性。

输出不确定

每次调用都会生成不同的随机向量。下方示例输出仅为示意 —— 你的输出会不同。

工作原理 ​

默认生成带基础指标的随机向量;--temporal 增加时间指标,--full 同时增加时间与环境指标,--score 打印结果评分。

用法 ​

cvss random [flags]

Flags ​

Flag默认值说明
--cvss-version string3.1CVSS 版本:3.0 或 3.1
--format stringtext输出格式:text 或 json
--fullfalse包含时间与环境指标
--scorefalse显示计算出的评分
--temporalfalse包含时间指标
-h, --help—random 的帮助

示例 ​

bash
cvss random
# 示例输出(你的会不同):
# CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:H/I:L/A:H
bash
cvss random --cvss-version 3.0 --full --score
bash
cvss random --format json

Flag 优先级

--full 优先于 --temporal:两者同设时得到全量(时间 + 环境)向量。两者都不设则仅基础指标。

底层 API ​

go
import (
    "github.com/scagogogo/cvss-skills/pkg/cvss"
    "github.com/scagogogo/cvss-skills/pkg/mock"
)

minor := 1 // 1 为 v3.1,0 为 v3.0

var cv *cvss.Cvss3x
// --full
cv = mock.RandomCvss3xFull(minor)
// --temporal(不带 --full)
// cv = mock.RandomCvss3xWithTemporal(minor)
// 仅基础(默认)
// cv = mock.RandomCvss3x(minor)

fmt.Println(cv.String())

// 带 --score:
calc := cvss.NewCalculator(cv)
score, err := calc.Calculate()
if err == nil {
    fmt.Printf("Score: %.1f (%s)\n", score, cvss.GetSeverity(score))
}

三个构造函数位于 pkg/mock:RandomCvss3x(minorVersion int)、RandomCvss3xWithTemporal(minorVersion int)、RandomCvss3xFull(minorVersion int)。均返回 *cvss.Cvss3x。传 1 为 v3.1,传 0 为 v3.0。

相关命令 ​

  • preset —— 按严重性档位的已知良好向量
  • score —— 为任意向量评分
  • range —— 部分向量的评分范围

基于 MIT 许可证发布。