1616- [ rawHttpParser.ts] ( file://src/frontEnd/src/utils/httpRequestParser/parsers/rawHttpParser.ts )
1717- [ scanPreset.ts] ( file://src/frontEnd/src/types/scanPreset.ts )
1818- [ task.ts] ( file://src/frontEnd/src/types/task.ts )
19+ - [ ScanPreset.py] ( file://src/backEnd/model/ScanPreset.py )
20+ - [ scanPreset.py] ( file://src/backEnd/api/commonApi/scanPreset.py )
21+ - [ scanPreset.ts] ( file://src/frontEnd/src/stores/scanPreset.ts )
1922</cite >
2023
24+ ## 更新摘要
25+ ** 已更新内容**
26+ - 更新了“引导式参数编辑器”部分,以反映预设配置系统的重构
27+ - 新增了“预设配置系统”部分,详细说明配置分类、管理机制和UI改进
28+ - 更新了“参数映射与默认值设置”部分,增加了预设配置的应用逻辑
29+ - 新增了“实时参数预览”部分,说明命令行参数的动态生成和显示机制
30+ - 更新了“常见配置错误解决方案”部分,增加了预设配置相关的错误处理
31+
2132## 目录
22331 . [ 任务创建流程概述] ( #任务创建流程概述 )
23342 . [ HTTP请求导入与解析] ( #http请求导入与解析 )
24353 . [ TaskRequest数据模型] ( #taskrequest数据模型 )
25364 . [ 前端HTTP请求解析器] ( #前端http请求解析器 )
26375 . [ 参数映射与默认值设置] ( #参数映射与默认值设置 )
27- 6 . [ 引导式参数编辑器] ( #引导式参数编辑器 )
28- 7 . [ 常见配置错误解决方案] ( #常见配置错误解决方案 )
38+ 6 . [ 预设配置系统] ( #预设配置系统 )
39+ 7 . [ 实时参数预览] ( #实时参数预览 )
40+ 8 . [ 引导式参数编辑器] ( #引导式参数编辑器 )
41+ 9 . [ 常见配置错误解决方案] ( #常见配置错误解决方案 )
2942
3043## 任务创建流程概述
3144
@@ -183,6 +196,7 @@ Parser-->>User : 返回解析结果
1831962 . ** 类型转换** :将前端传递的参数值转换为sqlmap期望的类型。
1841973 . ** 默认值填充** :为未指定的参数设置合理的默认值。
1851984 . ** 特殊处理** :对一些特殊参数进行额外的处理,如批量模式、禁用颜色等。
199+ 5 . ** 预设应用** :当用户选择预设配置时,将预设中的参数值应用到当前配置中。
186200
187201### 默认值设置
188202
@@ -201,16 +215,176 @@ B --> |有效| C[类型转换]
201215B --> |无效| D[返回错误]
202216C --> E[默认值填充]
203217E --> F[特殊处理]
204- F --> G[创建任务]
218+ F --> G[预设应用]
219+ G --> H[创建任务]
205220```
206221
207- ** Diagram sources**
222+ ** Section sources**
208223- [ Task.py] ( file://src/backEnd/model/Task.py#L75-L95 )
209224- [ taskService.py] ( file://src/backEnd/service/taskService.py#L58-L87 )
225+ - [ scanPreset.py] ( file://src/backEnd/api/commonApi/scanPreset.py#L300-L321 )
226+
227+ ## 预设配置系统
228+
229+ 预设配置系统是前端任务配置界面重构的核心部分,它允许用户保存、管理和应用常用的扫描配置。系统将预设配置分为三种类型:默认配置、常用配置和历史配置,每种类型都有其特定的用途和管理方式。
230+
231+ ### 预设类型
232+
233+ 1 . ** 默认配置** :系统提供的基础配置,包含最常用的扫描参数。用户可以修改默认配置,但不能删除。
234+ 2 . ** 常用配置** :用户手动创建和保存的配置,用于快速应用特定的扫描策略。
235+ 3 . ** 历史配置** :系统自动保存的最近使用的配置,便于用户快速回溯和重复使用。
236+
237+ ### 配置管理
238+
239+ 预设配置的管理通过以下API实现:
240+
241+ - ** 创建** :` POST /scan-preset ` 创建新的常用配置
242+ - ** 读取** :` GET /scan-preset/list ` 获取所有预设配置列表
243+ - ** 更新** :` PUT /scan-preset/{preset_id} ` 更新指定的预设配置
244+ - ** 删除** :` DELETE /scan-preset/{preset_id} ` 删除指定的预设配置
245+ - ** 应用** :` POST /scan-preset/{preset_id}/apply ` 将预设配置应用到当前选项
246+
247+ ### UI改进
248+
249+ 前端界面进行了以下改进:
250+
251+ 1 . ** 模式切换** :新增了“使用预设”和“自定义配置”两种模式,用户可以轻松切换。
252+ 2 . ** 分类选择** :通过下拉菜单选择预设类型,界面更加直观。
253+ 3 . ** 实时预览** :在选择预设时,实时显示对应的命令行参数。
254+ 4 . ** 保存功能** :在自定义配置模式下,可以将当前配置保存为新的预设。
255+
256+ ``` mermaid
257+ classDiagram
258+ class PresetType {
259+ +DEFAULT
260+ +PRESET
261+ +HISTORY
262+ }
263+ class ScanPreset {
264+ +id : int
265+ +name : str
266+ +description : str
267+ +preset_type : PresetType
268+ +options : ScanOptions
269+ +parameter_string : str
270+ +is_active : bool
271+ +created_at : datetime
272+ +updated_at : datetime
273+ +last_used_at : datetime
274+ +use_count : int
275+ }
276+ class ScanOptions {
277+ +level : int
278+ +risk : int
279+ +string : str
280+ +notString : str
281+ +regexp : str
282+ +code : int
283+ +smart : bool
284+ +textOnly : bool
285+ +titles : bool
286+ +testParameter : str
287+ +skip : str
288+ +skipStatic : bool
289+ +paramExclude : str
290+ +dbms : str
291+ +os : str
292+ +prefix : str
293+ +suffix : str
294+ +tamper : str
295+ +technique : str
296+ +timeSec : int
297+ +timeout : int
298+ +retries : int
299+ +delay : float
300+ +randomAgent : bool
301+ +proxy : str
302+ +tor : bool
303+ +optimize : bool
304+ +predictOutput : bool
305+ +keepAlive : bool
306+ +nullConnection : bool
307+ +threads : int
308+ +getBanner : bool
309+ +getCurrentUser : bool
310+ +getCurrentDb : bool
311+ +getHostname : bool
312+ +isDba : bool
313+ +getUsers : bool
314+ +getPasswordHashes : bool
315+ +getPrivileges : bool
316+ +getRoles : bool
317+ +getDbs : bool
318+ +getTables : bool
319+ +getColumns : bool
320+ +dumpTable : bool
321+ +dumpAll : bool
322+ +db : str
323+ +tbl : str
324+ +col : str
325+ +batch : bool
326+ +forms : bool
327+ +crawlDepth : int
328+ +flushSession : bool
329+ +freshQueries : bool
330+ +verbose : int
331+ }
332+ PresetType --> ScanPreset
333+ ScanPreset --> ScanOptions
334+ ```
335+
336+ ** Diagram sources**
337+ - [ ScanPreset.py] ( file://src/backEnd/model/ScanPreset.py#L11-L230 )
338+ - [ scanPreset.py] ( file://src/backEnd/api/commonApi/scanPreset.py#L23-L325 )
339+
340+ ** Section sources**
341+ - [ ScanPreset.py] ( file://src/backEnd/model/ScanPreset.py#L1-L230 )
342+ - [ scanPreset.py] ( file://src/backEnd/api/commonApi/scanPreset.py#L1-L325 )
343+ - [ scanPreset.ts] ( file://src/frontEnd/src/stores/scanPreset.ts#L1-L296 )
344+
345+ ## 实时参数预览
346+
347+ 实时参数预览功能是前端界面重构的重要改进,它允许用户在配置参数的同时,实时查看对应的命令行参数字符串。这一功能大大提高了配置的透明度和准确性。
348+
349+ ### 预览机制
350+
351+ 实时参数预览的工作机制如下:
352+
353+ 1 . ** 参数监听** :监听用户在配置界面的所有输入和选择操作。
354+ 2 . ** 参数转换** :将用户配置的参数转换为对应的命令行参数。
355+ 3 . ** 语法高亮** :对命令行参数进行语法高亮显示,提高可读性。
356+ 4 . ** 动态更新** :每当用户修改配置时,立即更新预览内容。
357+
358+ ### 预览内容
359+
360+ 预览内容包括:
361+
362+ - ** 参数名称** :以蓝色显示,如 ` --level `
363+ - ** 参数值** :以绿色显示,如 ` "5" `
364+ - ** 布尔参数** :以紫色显示,如 ` --batch `
365+ - ** 默认参数** :以灰色显示,表示未修改的默认值
366+
367+ ### 使用方法
368+
369+ 使用实时参数预览的步骤如下:
370+
371+ 1 . 在配置界面修改参数。
372+ 2 . 观察下方的命令行预览区域。
373+ 3 . 确认参数是否正确。
374+ 4 . 如需复制,点击复制按钮。
375+
376+ ``` mermaid
377+ flowchart TD
378+ A[用户修改配置] --> B[监听配置变化]
379+ B --> C[生成命令行参数]
380+ C --> D[语法高亮处理]
381+ D --> E[更新预览显示]
382+ E --> F[用户确认]
383+ ```
210384
211385** Section sources**
212- - [ Task.py ] ( file://src/backEnd/model/Task.py#L1-L333 )
213- - [ taskService.py ] ( file://src/backEnd/service/taskService.py#L1-L535 )
386+ - [ AddTask/index.vue ] ( file://src/frontEnd/src/views/AddTask/index.vue#L532-L560 )
387+ - [ GuidedParamEditor.vue ] ( file://src/frontEnd/src/components/GuidedParamEditor.vue#L124-L127 )
214388
215389## 引导式参数编辑器
216390
@@ -224,6 +398,7 @@ F --> G[创建任务]
2243982 . ** 实时预览** :在用户配置参数的同时,实时显示对应的命令行参数字符串。
2253993 . ** 搜索过滤** :支持通过关键词搜索和过滤参数,快速找到所需选项。
2264004 . ** 预设管理** :允许用户保存和加载常用的参数配置。
401+ 5 . ** 多模式支持** :支持预设模式和自定义模式,满足不同用户需求。
227402
228403### 使用方法
229404
@@ -265,6 +440,7 @@ F --> |提交| H[创建任务]
2654402 . ** 参数值错误** :提供的参数值不在有效范围内或格式不正确。
2664413 . ** 必填参数缺失** :缺少必要的参数,如scanUrl或options。
2674424 . ** 网络连接问题** :无法连接到目标服务器或代理配置错误。
443+ 5 . ** 预设配置错误** :预设配置名称冲突或配置不存在。
268444
269445### 解决方案
270446
@@ -274,8 +450,10 @@ F --> |提交| H[创建任务]
274450- ** 参数值错误** :检查参数值是否在有效范围内,参考文档中的说明。
275451- ** 必填参数缺失** :确保所有必填参数都已正确填写。
276452- ** 网络连接问题** :检查网络连接和代理配置,确保可以访问目标服务器。
453+ - ** 预设配置错误** :检查预设名称是否已存在,或确认预设配置ID是否正确。
277454
278455** Section sources**
279456- [ webTaskController.py] ( file://src/backEnd/api/commonApi/webTaskController.py#L47-L54 )
280457- [ taskService.py] ( file://src/backEnd/service/taskService.py#L23-L43 )
281- - [ AddTask/index.vue] ( file://src/frontEnd/src/views/AddTask/index.vue#L616-L629 )
458+ - [ AddTask/index.vue] ( file://src/frontEnd/src/views/AddTask/index.vue#L616-L629 )
459+ - [ scanPreset.py] ( file://src/backEnd/api/commonApi/scanPreset.py#L251-L264 )
0 commit comments