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",
},
"flag_scan_mode": {
LangZH: "扫描模式: all, portscan, tcpscan, udpscan, icmp等",
LangEN: "Scan mode: all, portscan, tcpscan, udpscan, icmp, etc.",
LangZH: "扫描模式: all(全部), icmp(存活探测), 或指定插件名称",
LangEN: "Scan mode: all(all plugins), icmp(alive detection), or specific plugin names",
},
"flag_thread_num": {
LangZH: "端口扫描线程数",

View File

@ -273,16 +273,18 @@ func (vp *ValidationParser) checkPerformance(input *ValidationInput, config *Par
// validateScanMode 验证扫描模式
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 {
if scanMode == mode {
return nil
}
}
return NewParseError("VALIDATION_ERROR",
fmt.Sprintf("无效的扫描模式: %s", scanMode), "scan_mode", 0, nil)
// 允许插件名称作为扫描模式,实际插件验证在运行时进行
// 这里不做严格验证,避免维护两套插件列表
return nil
}