1111- [ TaskRequest.py] ( file://src/backEnd/model/requestModel/TaskRequest.py )
1212- [ header_processor.py] ( file://src/backEnd/utils/header_processor.py )
1313- [ taskService.py] ( file://src/backEnd/service/taskService.py )
14+ - [ GuidedParamEditor.vue] ( file://src/frontEnd/src/components/GuidedParamEditor.vue )
15+ - [ GuidedParamEditorDialog.vue] ( file://src/frontEnd/src/components/GuidedParamEditorDialog.vue )
16+ - [ paramDefinitions.ts] ( file://src/frontEnd/src/utils/paramDefinitions.ts )
17+ - [ scanConfigParser.ts] ( file://src/frontEnd/src/utils/scanConfigParser.ts )
1418- [ TaskOptions.vue] ( file://src/frontEnd/src/views/TaskDetail/components/TaskOptions.vue )
1519- [ task.ts] ( file://src/frontEnd/src/stores/task.ts )
1620</cite >
1721
1822## 更新摘要
1923** 已修改内容**
20- - 修复了引导式参数编辑器在解析SQLMap命令行字符串时跳过默认值参数的bug
21- - 将ScanConfig.toOptionsMap()替换为ParseResult.getParsedParams(),确保所有参数(包括默认值)都能被正确加载
22- - 新增getConfigValue()方法,手动从ScanConfig对象中获取参数值,覆盖80多个SQLMap参数
23- - 增强了对未识别参数的处理,创建临时ParamMeta实例以防止数据丢失
24- - 更新了架构概述和详细组件分析部分以反映代码变更
24+ - 新增参数定义文件 ` paramDefinitions.ts ` 和解析器 ` scanConfigParser.ts ` ,支持参数搜索、分类筛选、动态输入和实时命令行预览
25+ - 新增 Vue 组件 ` GuidedParamEditor.vue ` 和 ` GuidedParamEditorDialog.vue ` ,实现前端引导式参数配置界面
26+ - 更新架构概述和详细组件分析部分,反映新增的前端组件和参数定义机制
27+ - 增强了参数类型识别和值范围验证逻辑,提升参数配置的易用性和准确性
2528
2629## 目录
27301 . [ 引言] ( #引言 )
@@ -77,15 +80,17 @@ Dialog --> Parser
7780- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditor.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditor.java )
7881
7982## 核心组件
80- 引导式参数编辑器的核心由三个主要Java类构成 :` GuidedParamEditor ` 、` GuidedParamEditorDialog ` 和 ` ScanConfigParser ` 。` GuidedParamEditor ` 负责提供参数选择、输入和预览的UI功能;` GuidedParamEditorDialog ` 将其封装为模态对话框;` ScanConfigParser ` 则负责解析和验证参数字符串 。这些组件协同工作,为用户提供完整的参数配置体验。
83+ 引导式参数编辑器的核心由多个组件构成 :` GuidedParamEditor ` 、` GuidedParamEditorDialog ` 、 ` ScanConfigParser ` 、 ` paramDefinitions.ts ` 和 ` scanConfigParser.ts ` 。` GuidedParamEditor ` 负责提供参数选择、输入和预览的UI功能;` GuidedParamEditorDialog ` 将其封装为模态对话框;` ScanConfigParser ` 负责解析和验证参数字符串; ` paramDefinitions.ts ` 定义了所有参数的元数据; ` scanConfigParser.ts ` 实现了前端参数解析和生成 。这些组件协同工作,为用户提供完整的参数配置体验。
8184
8285** Section sources**
8386- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditor.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditor.java )
8487- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditorDialog.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditorDialog.java )
8588- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfigParser.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfigParser.java )
89+ - [ src/frontEnd/src/utils/paramDefinitions.ts] ( file://src/frontEnd/src/utils/paramDefinitions.ts )
90+ - [ src/frontEnd/src/utils/scanConfigParser.ts] ( file://src/frontEnd/src/utils/scanConfigParser.ts )
8691
8792## 架构概述
88- 引导式参数编辑器采用分层架构设计,从下到上分别为数据层、逻辑层和表现层。数据层由` ParamMeta ` 类定义参数元数据 ,逻辑层由` ScanConfigParser ` 处理参数解析和验证,表现层由` GuidedParamEditor ` 提供用户交互界面。这种分层设计确保了组件的可维护性和可扩展性。
93+ 引导式参数编辑器采用分层架构设计,从下到上分别为数据层、逻辑层和表现层。数据层由` ParamMeta ` 类和 ` paramDefinitions.ts ` 定义参数元数据 ,逻辑层由` ScanConfigParser ` 和 ` scanConfigParser.ts ` 处理参数解析和验证,表现层由` GuidedParamEditor ` 和 ` GuidedParamEditor.vue ` 提供用户交互界面。这种分层设计确保了组件的可维护性和可扩展性。
8994
9095``` mermaid
9196classDiagram
@@ -142,12 +147,86 @@ class ScanConfig {
142147+copy()
143148+mergeFromString()
144149}
150+ class ParamDefinition {
151+ +key : string
152+ +name : string
153+ +cliName : string
154+ +description : string
155+ +category : string
156+ +type : 'boolean' | 'integer' | 'float' | 'string' | 'select'
157+ +defaultValue? : any
158+ +min? : number
159+ +max? : number
160+ +options? : string[]
161+ }
162+ class ScanOptions {
163+ +level? : number
164+ +risk? : number
165+ +string? : string
166+ +notString? : string
167+ +regexp? : string
168+ +code? : number
169+ +smart? : boolean
170+ +textOnly? : boolean
171+ +titles? : boolean
172+ +testParameter? : string
173+ +skip? : string
174+ +skipStatic? : boolean
175+ +paramExclude? : string
176+ +dbms? : string
177+ +os? : string
178+ +prefix? : string
179+ +suffix? : string
180+ +tamper? : string
181+ +technique? : string
182+ +timeSec? : number
183+ +timeout? : number
184+ +retries? : number
185+ +delay? : number
186+ +randomAgent? : boolean
187+ +proxy? : string
188+ +tor? : boolean
189+ +forceSSL? : boolean
190+ +skipUrlEncode? : boolean
191+ +optimize? : boolean
192+ +keepAlive? : boolean
193+ +nullConnection? : boolean
194+ +threads? : number
195+ +getBanner? : boolean
196+ +getCurrentUser? : boolean
197+ +getCurrentDb? : boolean
198+ +isDba? : boolean
199+ +getUsers? : boolean
200+ +getDbs? : boolean
201+ +getTables? : boolean
202+ +getColumns? : boolean
203+ +dumpTable? : boolean
204+ +dumpAll? : boolean
205+ +db? : string
206+ +tbl? : string
207+ +col? : string
208+ +batch? : boolean
209+ +forms? : boolean
210+ +crawlDepth? : number
211+ +flushSession? : boolean
212+ +freshQueries? : boolean
213+ +verbose? : number
214+ }
215+ class ParseResult {
216+ +options : ScanOptions
217+ +errors : string[]
218+ +warnings : string[]
219+ +parsedParams : string[]
220+ }
145221GuidedParamEditor --> ScanConfigParser : "使用"
146222GuidedParamEditor --> ParamMeta : "使用"
147223GuidedParamEditorDialog --> GuidedParamEditor : "包含"
148224ScanConfigParser --> ParamMeta : "包含"
149225ScanConfigParser --> ParseResult : "返回"
150226ParseResult --> ScanConfig : "包含"
227+ GuidedParamEditor.vue --> scanConfigParser.ts : "使用"
228+ GuidedParamEditor.vue --> paramDefinitions.ts : "使用"
229+ scanConfigParser.ts --> ParseResult : "返回"
151230```
152231
153232** Diagram sources**
@@ -157,6 +236,8 @@ ParseResult --> ScanConfig : "包含"
157236- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParamMeta.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParamMeta.java )
158237- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParseResult.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParseResult.java )
159238- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfig.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfig.java )
239+ - [ src/frontEnd/src/utils/paramDefinitions.ts] ( file://src/frontEnd/src/utils/paramDefinitions.ts )
240+ - [ src/frontEnd/src/utils/scanConfigParser.ts] ( file://src/frontEnd/src/utils/scanConfigParser.ts )
160241
161242## 详细组件分析
162243### 引导式参数编辑器分析
@@ -263,7 +344,7 @@ ReturnResult --> End
263344- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfigParser.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfigParser.java )
264345
265346## 依赖分析
266- 引导式参数编辑器依赖于多个核心组件和库。主要依赖包括Apache Commons CLI用于命令行参数解析,Swing用于UI组件,以及项目内部的` ParamMeta ` 、` ScanConfig ` 和` ParseResult ` 类。这些依赖关系确保了组件的功能完整性和稳定性。
347+ 引导式参数编辑器依赖于多个核心组件和库。主要依赖包括Apache Commons CLI用于命令行参数解析,Swing用于UI组件,以及项目内部的` ParamMeta ` 、` ScanConfig ` 和` ParseResult ` 类。此外,前端组件依赖Vue 3、PrimeVue和mri库。 这些依赖关系确保了组件的功能完整性和稳定性。
267348
268349``` mermaid
269350graph TD
@@ -275,6 +356,9 @@ ScanConfigParser --> CommonsCLI
275356ScanConfigParser --> ParamMeta
276357ScanConfigParser --> ParseResult
277358ParseResult --> ScanConfig
359+ GuidedParamEditor.vue --> scanConfigParser.ts
360+ GuidedParamEditor.vue --> paramDefinitions.ts
361+ scanConfigParser.ts --> mri
278362```
279363
280364** Diagram sources**
@@ -283,13 +367,19 @@ ParseResult --> ScanConfig
283367- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParamMeta.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParamMeta.java )
284368- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParseResult.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParseResult.java )
285369- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfig.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfig.java )
370+ - [ src/frontEnd/src/components/GuidedParamEditor.vue] ( file://src/frontEnd/src/components/GuidedParamEditor.vue )
371+ - [ src/frontEnd/src/utils/scanConfigParser.ts] ( file://src/frontEnd/src/utils/scanConfigParser.ts )
372+ - [ src/frontEnd/src/utils/paramDefinitions.ts] ( file://src/frontEnd/src/utils/paramDefinitions.ts )
286373
287374** Section sources**
288375- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditor.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/panels/GuidedParamEditor.java )
289376- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfigParser.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfigParser.java )
290377- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParamMeta.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParamMeta.java )
291378- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParseResult.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ParseResult.java )
292379- [ src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfig.java] ( file://src/burpEx/montoya-api/src/main/java/com/sqlmapwebui/burp/ScanConfig.java )
380+ - [ src/frontEnd/src/components/GuidedParamEditor.vue] ( file://src/frontEnd/src/components/GuidedParamEditor.vue )
381+ - [ src/frontEnd/src/utils/scanConfigParser.ts] ( file://src/frontEnd/src/utils/scanConfigParser.ts )
382+ - [ src/frontEnd/src/utils/paramDefinitions.ts] ( file://src/frontEnd/src/utils/paramDefinitions.ts )
293383
294384## 性能考虑
295385引导式参数编辑器在设计时考虑了性能因素。参数列表的搜索和过滤操作采用实时更新机制,但通过事件去抖和后台线程处理来避免UI卡顿。命令行预览的生成也经过优化,只在参数发生变化时重新生成,减少了不必要的计算开销。
0 commit comments