fix: 修复扫描模式验证和帮助文本过时问题

修复内容:
- 移除ValidationParser中无效的扫描模式(main, web, db, service, top1000, custom)
- 简化扫描模式验证逻辑,只保留真正支持的预定义模式(all, icmp)
- 允许任何插件名称作为扫描模式,实际验证在运行时进行
- 更新帮助文本,移除过时的portscan/tcpscan/udpscan引用

技术改进:
- 避免维护两套插件列表,减少维护成本
- 使验证逻辑与实际功能保持一致
- 提供更准确的用户指导信息

支持的扫描模式:
- all: 运行所有插件
- icmp: 存活探测模式
- 插件名称: mysql, redis, ssh等任何注册插件
- 多插件: mysql,redis,ssh等逗号分隔格式
This commit is contained in:
ZacharyZcR 2025-08-07 09:54:56 +08:00
parent 022461f407
commit 78b8ff4f81
2 changed files with 8 additions and 6 deletions

View File

@ -35,8 +35,8 @@ var FlagMessages = map[string]map[string]string{
LangEN: "Ports file", LangEN: "Ports file",
}, },
"flag_scan_mode": { "flag_scan_mode": {
LangZH: "扫描模式: all, portscan, tcpscan, udpscan, icmp等", LangZH: "扫描模式: all(全部), icmp(存活探测), 或指定插件名称",
LangEN: "Scan mode: all, portscan, tcpscan, udpscan, icmp, etc.", LangEN: "Scan mode: all(all plugins), icmp(alive detection), or specific plugin names",
}, },
"flag_thread_num": { "flag_thread_num": {
LangZH: "端口扫描线程数", LangZH: "端口扫描线程数",

View File

@ -273,16 +273,18 @@ func (vp *ValidationParser) checkPerformance(input *ValidationInput, config *Par
// validateScanMode 验证扫描模式 // validateScanMode 验证扫描模式
func (vp *ValidationParser) validateScanMode(scanMode string) error { func (vp *ValidationParser) validateScanMode(scanMode string) error {
validModes := []string{"all", "main", "web", "db", "service", "top1000", "custom", "icmp"} validModes := []string{"all", "icmp"}
// 检查是否为预定义模式
for _, mode := range validModes { for _, mode := range validModes {
if scanMode == mode { if scanMode == mode {
return nil return nil
} }
} }
return NewParseError("VALIDATION_ERROR", // 允许插件名称作为扫描模式,实际插件验证在运行时进行
fmt.Sprintf("无效的扫描模式: %s", scanMode), "scan_mode", 0, nil) // 这里不做严格验证,避免维护两套插件列表
return nil
} }