mirror of
https://github.com/RuoJi6/ARTEX.git
synced 2026-10-27 17:03:49 +08:00
feat: 发现处置状态扩展为 8 个
在 待处理/误报/忽略/已处理 基础上新增: - in_progress 处理中(已受理、修复/验证中) - confirmed 已确认(真实漏洞未修复) - duplicate 重复 - risk_accepted 风险接受(确认存在但业务接受) 改动:db 常量 + ValidFindingStatus 白名单、schema 注释、status.ts 色板/文案、 types.ts 联合类型、两处下拉的 FINDING_STATUSES(下拉与状态筛选自动带出)。 状态无 CHECK 约束,旧库无需迁移。
This commit is contained in:
1 parent
58a277e2d1
commit
7b3eec2166
6 files changed
+34
-8
No files matched your search
+7
-2
@@ -26,15 +26,20 @@ type DBFinding struct {
|
||||
// Finding triage states (findings.status).
|
||||
const (
|
||||
FindingPending = "pending" // 待处理
|
||||
FindingInProgress = "in_progress" // 处理中
|
||||
FindingConfirmed = "confirmed" // 已确认(真实漏洞,未修复)
|
||||
FindingResolved = "resolved" // 已处理(已修复)
|
||||
FindingFalsePositive = "false_positive" // 误报
|
||||
FindingIgnored = "ignored" // 忽略
|
||||
FindingResolved = "resolved" // 已处理
|
||||
FindingDuplicate = "duplicate" // 重复
|
||||
FindingRiskAccepted = "risk_accepted" // 风险接受
|
||||
)
|
||||
|
||||
// ValidFindingStatus reports whether s is a known triage state.
|
||||
func ValidFindingStatus(s string) bool {
|
||||
switch s {
|
||||
case FindingPending, FindingFalsePositive, FindingIgnored, FindingResolved:
|
||||
case FindingPending, FindingInProgress, FindingConfirmed, FindingResolved,
|
||||
FindingFalsePositive, FindingIgnored, FindingDuplicate, FindingRiskAccepted:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
||||
+2
-1
@@ -545,7 +545,8 @@ CREATE TABLE IF NOT EXISTS findings (
|
||||
evidence TEXT NOT NULL DEFAULT '',
|
||||
worker TEXT NOT NULL DEFAULT '',
|
||||
asset_ids JSONB NOT NULL DEFAULT '[]',
|
||||
-- 处置状态:pending 待处理 / false_positive 误报 / ignored 忽略 / resolved 已处理。
|
||||
-- 处置状态:pending 待处理 / in_progress 处理中 / confirmed 已确认 / resolved 已处理 /
|
||||
-- false_positive 误报 / ignored 忽略 / duplicate 重复 / risk_accepted 风险接受。
|
||||
-- 取值不加 CHECK:旧库靠下面的 ALTER 补列,CHECK 无法回填,统一由 server 侧白名单校验。
|
||||
status TEXT NOT NULL DEFAULT 'pending',
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
|
||||
@@ -40,9 +40,13 @@ import type { Finding, FindingStats, FindingStatus, Severity } from "@/lib/types
|
||||
|
||||
const FINDING_STATUSES: FindingStatus[] = [
|
||||
"pending",
|
||||
"in_progress",
|
||||
"confirmed",
|
||||
"resolved",
|
||||
"false_positive",
|
||||
"ignored",
|
||||
"resolved",
|
||||
"duplicate",
|
||||
"risk_accepted",
|
||||
];
|
||||
|
||||
const EMPTY_STATS: FindingStats = {
|
||||
|
||||
@@ -18,9 +18,13 @@ import type { Finding, FindingStatus } from "@/lib/types";
|
||||
|
||||
const FINDING_STATUSES: FindingStatus[] = [
|
||||
"pending",
|
||||
"in_progress",
|
||||
"confirmed",
|
||||
"resolved",
|
||||
"false_positive",
|
||||
"ignored",
|
||||
"resolved",
|
||||
"duplicate",
|
||||
"risk_accepted",
|
||||
];
|
||||
|
||||
function Row({
|
||||
|
||||
@@ -65,9 +65,13 @@ const severity: Record<string, StatusMeta> = {
|
||||
|
||||
const finding: Record<string, StatusMeta> = {
|
||||
pending: { label: "待处理", tone: "amber" },
|
||||
in_progress: { label: "处理中", tone: "blue" },
|
||||
confirmed: { label: "已确认", tone: "red" },
|
||||
resolved: { label: "已处理", tone: "green" },
|
||||
false_positive: { label: "误报", tone: "slate" },
|
||||
ignored: { label: "忽略", tone: "neutral" },
|
||||
resolved: { label: "已处理", tone: "green" },
|
||||
duplicate: { label: "重复", tone: "neutral" },
|
||||
risk_accepted: { label: "风险接受", tone: "violet" },
|
||||
};
|
||||
|
||||
const engine: Record<string, StatusMeta> = {
|
||||
|
||||
+10
-2
@@ -239,8 +239,16 @@ export interface TaskNode {
|
||||
// ---- Findings ----
|
||||
export type Severity = "high" | "medium" | "low";
|
||||
|
||||
// 漏洞处置状态:待处理 / 误报 / 忽略 / 已处理。
|
||||
export type FindingStatus = "pending" | "false_positive" | "ignored" | "resolved";
|
||||
// 漏洞处置状态:待处理 / 处理中 / 已确认 / 已处理 / 误报 / 忽略 / 重复 / 风险接受。
|
||||
export type FindingStatus =
|
||||
| "pending"
|
||||
| "in_progress"
|
||||
| "confirmed"
|
||||
| "resolved"
|
||||
| "false_positive"
|
||||
| "ignored"
|
||||
| "duplicate"
|
||||
| "risk_accepted";
|
||||
|
||||
// FindingAsset 是一个漏洞绑定的资产(已在后端预渲染 label)。
|
||||
export interface FindingAsset {
|
||||
|
||||
Reference in new issue
Block a user