mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00
feat: 完善参数互斥检查,-h/-u/-local三个参数只能指定一个
问题: - 之前只检查了-local与-h/-u的互斥性 - 但-h和-u也应该互斥,代表不同的扫描模式 - 用户可能误用多个参数导致行为不明确 解决方案: - 统一检查三个核心参数的互斥性 - 提供清晰的错误提示和参数说明 - 确保用户明确选择一种扫描模式 三种扫描模式: - -h: 网络主机扫描 (端口+服务+漏洞) - -u: Web URL扫描 (Web漏洞+内容分析) - -local: 本地信息收集 (系统信息+痕迹清理) 测试验证: ✓ -h + -u: 正确拒绝并提示互斥 ✓ -h + -local: 正确拒绝并提示互斥 ✓ -u + -local: 正确拒绝并提示互斥 ✓ 单独使用: 正常工作 用户体验改进: - 清晰的错误信息 - 每个参数的功能说明 - 避免了参数冲突的困惑
This commit is contained in:
parent
80644cd6f1
commit
a7ea2f5198
35
main.go
35
main.go
@ -22,13 +22,36 @@ func main() {
|
|||||||
var info common.HostInfo
|
var info common.HostInfo
|
||||||
common.Flag(&info)
|
common.Flag(&info)
|
||||||
|
|
||||||
// 检查-local与-h -u的互斥性
|
// 检查核心参数的互斥性:-h、-u、-local 只能指定一个
|
||||||
if common.LocalPlugin != "" && info.Host != "" {
|
paramCount := 0
|
||||||
fmt.Printf("错误: -local参数与-h参数互斥,本地插件只能在本机运行\n")
|
var activeParam string
|
||||||
os.Exit(1)
|
|
||||||
|
if info.Host != "" {
|
||||||
|
paramCount++
|
||||||
|
activeParam = "-h"
|
||||||
}
|
}
|
||||||
if common.LocalPlugin != "" && common.TargetURL != "" {
|
if common.TargetURL != "" {
|
||||||
fmt.Printf("错误: -local参数与-u参数互斥,本地插件不需要URL目标\n")
|
paramCount++
|
||||||
|
if activeParam != "" {
|
||||||
|
activeParam += " 和 -u"
|
||||||
|
} else {
|
||||||
|
activeParam = "-u"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if common.LocalPlugin != "" {
|
||||||
|
paramCount++
|
||||||
|
if activeParam != "" {
|
||||||
|
activeParam += " 和 -local"
|
||||||
|
} else {
|
||||||
|
activeParam = "-local"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if paramCount > 1 {
|
||||||
|
fmt.Printf("错误: 参数 %s 互斥,请只指定一个扫描目标\n", activeParam)
|
||||||
|
fmt.Printf(" -h: 网络主机扫描\n")
|
||||||
|
fmt.Printf(" -u: Web URL扫描\n")
|
||||||
|
fmt.Printf(" -local: 本地信息收集\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user