🚨 GetHighSeverityVulnerabilities
执行安全审计并筛选出严重性为 high 或 critical 的高危漏洞列表。底层调用 AuditWithJSON。
何时使用
当漏洞数量较多、需要按优先级修复时使用。本方法帮你聚焦最危险的问题,便于在告警、工单或阻断式 CI 中只针对高危漏洞触发动作。
签名
go
func (c *Composer) GetHighSeverityVulnerabilities() ([]Vulnerability, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | []Vulnerability | 严重性为 high 或 critical 的漏洞列表,无匹配时为空切片 |
| 第二返回值 | error | 执行或解析过程中发生错误时返回 |
Vulnerability 关键字段:Package、Version、Title、Severity、Link、CVE、Abandoned。
示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.NewComposer("")
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
highVulns, err := comp.GetHighSeverityVulnerabilities()
if err != nil {
log.Fatalf("获取高危漏洞失败: %v", err)
}
if len(highVulns) > 0 {
fmt.Printf("发现 %d 个高危漏洞:\n", len(highVulns))
for _, vuln := range highVulns {
fmt.Printf("包: %s 版本: %s\n", vuln.Package, vuln.Version)
fmt.Printf("漏洞: %s\n", vuln.Title)
fmt.Printf("严重性: %s\n", vuln.Severity)
fmt.Printf("详情: %s\n\n", vuln.Link)
}
} else {
fmt.Println("未发现高危漏洞。")
}
}进阶
- 严重性字段由 Composer 的安全数据源提供,取值通常为
critical/high/medium/low。本方法仅保留前两档。 - 想要全部漏洞(含中低危):使用 AuditWithJSON。
- 想要更细粒度的公告信息:使用 GetAuditInfo。
- 相关方法:HasVulnerabilities、GetAbandonedPackages。