问题:
任务历史 / Dashboard 全是对账脚本/诊断脚本灌进 DB 的内部测试记录
(test_center/v/verify/diag/debug/final/... 共 4624 条)
用户误以为测试靶场页面在自动触发批量扫描
根因:
scanner.scan_file() 内部无条件 persist_to_db()
控制台页面查询完全没有 channel 过滤 — 直接 SELECT * FROM scan_tasks
修复:
1) 代码层: INTERNAL_TEST_CHANNELS frozenset (19 个内部 channel 黑名单)
- dashboard 6 个查询全加 .filter(ScanTask.channel.notin_(...))
- tasks_page 2 个查询全加 .filter(...)
2) 数据层: 删除内部测试 channel 记录
- ScanTask 4624 条 (test_center 1929 / v 688 / verify 501 / ...)
- ScanFinding 9101 条 (外键先删)
- 保留生产: console_upload 3465 + duandao 16 + default 7
控制台现在只展示真实生产数据, 后续新增内部脚本 channel 只需在
INTERNAL_TEST_CHANNELS 补充一行即可自动隐藏
74 KiB
74 KiB