Skip to content

Commit c14c9ff

Browse files
authored
Merge pull request #332 from HXSecurity/beta
Release 1.10.0
2 parents dd514c1 + a25d3a1 commit c14c9ff

File tree

12 files changed

+639
-21
lines changed

12 files changed

+639
-21
lines changed

src/config/lang/en.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,11 @@ export default {
213213
entryNamePlaceholder: 'Please enter the project name',
214214
projectTemplate: 'Template',
215215
projectTemplatePlaceholder: 'Please Select',
216+
openLog: 'Open Log',
217+
openLogPlaceholder: 'Please Select',
218+
logLevel: 'Log Level',
219+
logLevelPlaceholder: 'Please Select',
220+
addLogSet: 'Add Log Set',
216221
projectVersion: 'Version',
217222
department: 'Department',
218223
begin: 'Select a language and start the installation',
@@ -455,6 +460,8 @@ export default {
455460
dangerType: 'Sink Rules',
456461
enterType: 'Entry Method Rules',
457462
searchDesc: 'Find rule details',
463+
ignoreInternal: 'Ignore Internal',
464+
ignoreBlacklist: 'Ignore Blacklist'
458465
},
459466
login: {
460467
title: 'User login',
@@ -928,6 +935,7 @@ export default {
928935
token: 'Access Token',
929936
department: 'Department',
930937
departmentPlaceholder: 'Please select a department',
938+
templatePlaceholder: 'Please select a template',
931939
tokenDesc:
932940
'Configure the access credentials of the current project for permission processing in the automatic scanning function',
933941
tokenPlaceholder: 'Place enter the access token',

src/config/lang/zh_cn.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,11 @@ export default {
224224
entryNamePlaceholder: '请输入项目名称',
225225
projectTemplate: '项目模版',
226226
projectTemplatePlaceholder: '请选择',
227+
openLog: '打开日志',
228+
openLogPlaceholder: '请选择',
229+
logLevel: '日志级别',
230+
logLevelPlaceholder: '请选择',
231+
addLogSet: '添加设置',
227232
projectVersion: '项目版本',
228233
department: '部门',
229234
begin: '选择一种语言,开始安装',
@@ -458,6 +463,8 @@ export default {
458463
dangerType: '危险方法规则',
459464
enterType: '入口方法规则',
460465
searchDesc: '查找规则详情',
466+
ignoreInternal: '忽略内部实现',
467+
ignoreBlacklist: '白名单'
461468
},
462469
login: {
463470
title: '用户登录',
@@ -929,6 +936,7 @@ export default {
929936
token: '访问凭证',
930937
department: '部门',
931938
departmentPlaceholder: '请选择部门',
939+
templatePlaceholder: '请选择项目配置',
932940
tokenDesc: '配置当前项目的访问凭证,用于自动扫描功能中的权限处理',
933941
tokenPlaceholder: '请输入访问凭证',
934942
appAddress: '项目地址',

src/services/setting.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,23 @@ export default () =>
6868
dataCleanTask(params: any): Promise<iResponse> {
6969
return request.post('/systemmonitor/data_clean/task', params)
7070
}
71+
72+
//获取交叉验证配置
73+
getCrossValid(params: any): Promise<iResponse> {
74+
return request.get('/dastvul/settings', {
75+
params,
76+
})
77+
}
78+
79+
// 更新交叉验证配置
80+
updateCrossValid(params: any): Promise<iResponse> {
81+
return request.post('/dastvul/settings', params)
82+
}
83+
84+
// 扫描器文档
85+
getDocuments(params: any): Promise<iResponse> {
86+
return request.get(`/dastvul/settings/doc`, {params})
87+
}
7188

7289
agentUninstall(params: any): Promise<iResponse> {
7390
return request.post('/agent/uninstall', params)
@@ -224,7 +241,9 @@ export default () =>
224241
rule_target: string
225242
inherit: string
226243
track: string
227-
language_id: number
244+
language_id: number,
245+
ignore_blacklist?: boolean,
246+
ignore_internal?: boolean
228247
}): Promise<iResponse> {
229248
return request.post('/engine/hook/rule/add', params)
230249
}
@@ -236,7 +255,9 @@ export default () =>
236255
rule_target: string
237256
inherit: string
238257
track: string
239-
language_id: number
258+
language_id: number,
259+
ignore_blacklist?: boolean,
260+
ignore_internal?: boolean
240261
}): Promise<iResponse> {
241262
return request.post('/engine/hook/rule/modify', params)
242263
}

src/services/vuln.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,30 @@ export default () =>
122122
})
123123
}
124124

125+
// 获取关联数据
126+
getRelationList(params: any): Promise<iResponse>{
127+
return request.post(`/dastvul/relationlist`, params)
128+
}
129+
130+
// 获取漏洞类型
131+
getVulType(params: any): Promise<iResponse>{
132+
return request.get(`/dastvul/vultype`,{
133+
params
134+
})
135+
}
136+
137+
// 删除关联
138+
deleteRelation(params: any): Promise<iResponse> {
139+
return request.delete(`/dastvul/relation`, {
140+
data: params
141+
})
142+
}
143+
144+
// 创建关联
145+
addRelation(params: any): Promise<iResponse>{
146+
return request.post(`/dastvul/relation`, params)
147+
}
148+
125149
// 漏洞删除
126150
vulnDelete(id: number): Promise<iResponse> {
127151
return request.post(`/vuln/delete/${id}`)

src/views/project/ProjectEdit.vue

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,39 @@
6666
</el-select>
6767
</div>
6868
</el-form-item>
69+
<el-form-item
70+
:label="$t('views.deploy.projectTemplate')"
71+
prop="template_id"
72+
>
73+
<el-select
74+
v-model="submitForm.template_id"
75+
class="addUserInput"
76+
clearable
77+
style="width: 390px"
78+
>
79+
<el-option
80+
v-for="(item, index) in projectList"
81+
:key="index"
82+
:label="item.template_name"
83+
:value="item.id"
84+
></el-option>
85+
</el-select>
86+
</el-form-item>
87+
<el-form-item :label="$t('views.deploy.openLog')" prop="enable_log">
88+
<el-select v-model="submitForm.enable_log" clearable :placeholder="$t('views.deploy.openLogPlaceholder')">
89+
<el-option label="yes" :value="true" />
90+
<el-option label="no" :value="false" />
91+
</el-select>
92+
</el-form-item>
93+
<el-form-item :label="$t('views.deploy.logLevel')" prop="log_level">
94+
<el-select v-model="submitForm.log_level" clearable :placeholder="$t('views.deploy.logLevelPlaceholder')">
95+
<el-option label="TRACE" value="TRACE" />
96+
<el-option label="INFO" value="INFO" />
97+
<el-option label="DEBUG" value="DEBUG" />
98+
<el-option label="WARN" value="WARN" />
99+
<el-option label="ERROR" value="ERROR" />
100+
</el-select>
101+
</el-form-item>
69102
<template v-if="!advanced">
70103
<el-form-item>
71104
<span class="advancedSetting" @click="advanced = true">
@@ -242,6 +275,8 @@ import { Form } from 'element-ui'
242275
export default class ProjectEdit extends VueBase {
243276
private advanced = false
244277
private departmentList = []
278+
private projectList = []
279+
private radio = ''
245280
private submitForm: {
246281
name: string
247282
mode: string
@@ -253,7 +288,10 @@ export default class ProjectEdit extends VueBase {
253288
base_url: string
254289
test_req_header_key: string
255290
test_req_header_value: string
256-
department_id: any
291+
department_id: any,
292+
template_id: any,
293+
log_level: any,
294+
enable_log: any,
257295
} = {
258296
name: '',
259297
mode: this.$t('views.projectEdit.mode1') as string,
@@ -266,6 +304,9 @@ export default class ProjectEdit extends VueBase {
266304
test_req_header_key: '',
267305
test_req_header_value: '',
268306
department_id: '',
307+
template_id: '',
308+
log_level: '',
309+
enable_log: '',
269310
}
270311
private engineList: Array<{
271312
id: number
@@ -309,6 +350,13 @@ export default class ProjectEdit extends VueBase {
309350
trigger: 'change',
310351
},
311352
],
353+
template_id: [
354+
{
355+
required: true,
356+
message: this.$t('views.projectEdit.templatePlaceholder'),
357+
trigger: 'change',
358+
},
359+
],
312360
}
313361
314362
private scanAddDialogOpen = false
@@ -331,9 +379,21 @@ export default class ProjectEdit extends VueBase {
331379
}
332380
this.$message.error(res.msg)
333381
}
382+
private async getListProjecttemplat() {
383+
const res = await this.services.setting.listProjecttemplat({
384+
page: 1,
385+
page_size: 100,
386+
})
387+
if (res.status === 201) {
388+
this.projectList = res.data
389+
return
390+
}
391+
this.$message.error(res.msg)
392+
}
334393
async created() {
335394
await this.getEngineList()
336395
await this.getListDepartment()
396+
await this.getListProjecttemplat()
337397
await this.strategyUserList()
338398
if (this.$route.params.pid) {
339399
await this.projectDetail()
@@ -381,7 +441,9 @@ export default class ProjectEdit extends VueBase {
381441
this.submitForm.test_req_header_key = data.test_req_header_key
382442
this.submitForm.test_req_header_value = data.test_req_header_value
383443
this.submitForm.department_id = data.department_id
384-
444+
this.submitForm.template_id = data.template_id
445+
this.submitForm.enable_log = data.enable_log
446+
this.submitForm.log_level = data.log_level
385447
this.agentChange()
386448
}
387449
@@ -574,7 +636,10 @@ export default class ProjectEdit extends VueBase {
574636
base_url: string
575637
test_req_header_key: string
576638
test_req_header_value: string
577-
department_id: any
639+
department_id: any,
640+
template_id: any,
641+
enable_log: any,
642+
log_level: any
578643
} = {
579644
name: this.submitForm.name,
580645
mode: this.submitForm.mode,
@@ -591,6 +656,9 @@ export default class ProjectEdit extends VueBase {
591656
test_req_header_key: this.submitForm.test_req_header_key,
592657
test_req_header_value: this.submitForm.test_req_header_value,
593658
department_id: this.submitForm.department_id,
659+
template_id: this.submitForm.template_id,
660+
enable_log: this.submitForm.enable_log,
661+
log_level: this.submitForm.log_level
594662
}
595663
if (this.$route.params.pid) {
596664
params.pid = this.$route.params.pid

src/views/project/VulListComponent.vue

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -740,9 +740,15 @@ export default class VulListComponent extends VueBase {
740740
bind_project_id: Number(this.projectId),
741741
project_version_id: Number(this.version),
742742
keywords: this.searchObj.keywords || undefined,
743-
project_id: this.searchObj.project_str || undefined,
744-
vul_level_id: this.searchObj.level_str || undefined,
745-
vul_type: this.searchObj.hook_type_str || undefined,
743+
project_id: this.searchObj.project_str.length
744+
? this.searchObj.project_str
745+
: undefined,
746+
vul_level_id: this.searchObj.level_str.length
747+
? this.searchObj.level_str
748+
: undefined,
749+
vul_type: this.searchObj.hook_type_str.length
750+
? this.searchObj.hook_type_str
751+
: undefined,
746752
order_type_desc: sort,
747753
}
748754
} else {

src/views/sca/ScanDetail.vue

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,18 @@
7575
<span class="dot">{{ assetVulDetail.dast_tag }}</span>
7676
</div>
7777
</div>
78-
<!-- <div class="infoLine flex-row-space-between">
78+
<div class="infoLine flex-row-space-between">
7979
<div v-dot class="info">
80-
<span class="label"> 漏洞类型: </span>
81-
<span>{{ assetVulDetail.vul_type }}</span>
80+
<span class="label"> payload: </span>
81+
<el-tooltip
82+
effect="light"
83+
:content="assetVulDetail.payload"
84+
placement="top"
85+
>
86+
<span>{{ assetVulDetail.payload }}</span>
87+
</el-tooltip>
8288
</div>
83-
</div> -->
89+
</div>
8490
</div>
8591
<div class="module-title">漏洞描述</div>
8692
<div class="vulnDesc">
@@ -133,7 +139,7 @@ export default class VulnDetail extends VueBase {
133139
fmtTime(time: any) {
134140
console.log('time', time)
135141
if (time) {
136-
const data = new Date(time).getTime() / 1000
142+
const data = new Date(time).getTime()
137143
return formatTimestamp(data)
138144
}
139145
return ''

0 commit comments

Comments
 (0)