安全监测

lijinlong
许宏杰 1 year ago
parent 05fce0b12e
commit c200de2021

@ -142,3 +142,41 @@ export function listSource(query) {
params: query
})
}
export function saftyscreenSupervise() {
return request({
url: '/zongzhi/saftyscreen/supervise',
method: 'get'
})
}
// 受攻击IPTop5
export function saftyscreenUnattack() {
return request({
url: '/zongzhi/saftyscreen/unattack',
method: 'get'
})
}
// 安全检测数据统计
export function saftyscreenSafety() {
return request({
url: '/zongzhi/saftyscreen/safety',
method: 'get'
})
}
// 查询安全检测列表
export function listDetection(query) {
return request({
url: '/zongzhi/detection/list',
method: 'get',
params: query
})
}
// 查询安全检测详细
export function getDetection(id) {
return request({
url: '/zongzhi/detection/' + id,
method: 'get'
})
}

@ -17,7 +17,7 @@ const dict = {
getDictType({ commit }) {
return new Promise((resolve, reject) => {
const query = {
list: 'sys_user_sex,tc_net_sx,tc_yq_media,tc_enter_type,tc_inlet_yewu,tc_item_type,tc_net_safety_level,tc_yes_no,tc_unit_type,tc_tmt_type,tc_net_safety_level,tc_db_steam_state'
list: 'sys_user_sex,tc_net_sx,tc_yq_media,tc_enter_type,tc_inlet_yewu,tc_item_type,tc_net_safety_level,tc_yes_no,tc_unit_type,tc_tmt_type,tc_net_safety_level,tc_db_steam_state,tc_attack_type'
}
getDictList(query)
.then((res) => {

@ -66,6 +66,7 @@
</template>
<script>
import { saftyscreenUnattack } from '@/api/zongzhi/st.js'
import { echartsJump } from '../../../../../public/static/echartsJump'
import { getAttackTypeDistribution, getTopIp } from '@/api/common'
export default {
@ -94,31 +95,31 @@ export default {
{ value: 443961, name: '其他' }
],
attackRanking: [
{
total: '10.53.221.176',
num: 1821207,
url: require('@/assets/privateOrder/general/top前三.png')
},
{
total: '10.52.121.112',
num: 1271992,
url: require('@/assets/privateOrder/general/top前三.png')
},
{
total: '10.53.236.147',
num: 1184362,
url: require('@/assets/privateOrder/general/top前三.png')
},
{
total: '10.53.18.231',
num: 1014549,
url: require('@/assets/privateOrder/general/top5-其他.png')
},
{
total: '172.96.100.207',
num: 836344,
url: require('@/assets/privateOrder/general/top5-其他.png')
}
// {
// total: '10.53.221.176',
// num: 1821207,
// url: require('@/assets/privateOrder/general/top.png')
// },
// {
// total: '10.52.121.112',
// num: 1271992,
// url: require('@/assets/privateOrder/general/top.png')
// },
// {
// total: '10.53.236.147',
// num: 1184362,
// url: require('@/assets/privateOrder/general/top.png')
// },
// {
// total: '10.53.18.231',
// num: 1014549,
// url: require('@/assets/privateOrder/general/top5-.png')
// },
// {
// total: '172.96.100.207',
// num: 836344,
// url: require('@/assets/privateOrder/general/top5-.png')
// }
],
controlList: []
// controlList: ['', '', ''] //
@ -142,14 +143,15 @@ export default {
// }
},
mounted() {
this.data = [
{ value: 1, name: '韩国' },
{ value: 80, name: '日本' },
{ value: 90, name: '美国' },
{ value: 20, name: '英国' },
{ value: 50, name: '加拿大' }
]
this.initDistribution()
this.getSaftyscreenUnattack()
// this.data = [
// { value: 1, name: '' },
// { value: 80, name: '' },
// { value: 90, name: '' },
// { value: 20, name: '' },
// { value: 50, name: '' }
// ]
// this.initDistribution()
// getAttackTypeDistribution().then((res) => {
// this.data = []
// res['T_ATTACK_TYPE_DISTRIBUTION[]'].forEach((ele) => {
@ -167,6 +169,25 @@ export default {
// })
},
methods: {
/**
* TOP5
*/
getSaftyscreenUnattack() {
saftyscreenUnattack().then(res => {
console.log(res.data)
this.attackRanking = res.data.map((item, index) => {
return {
name: item.attackIpRegion,
value: item.pt,
total: item.attackedIp,
num: item.count,
url: index + 1 <= 3 ? require('@/assets/privateOrder/general/top前三.png') : require('@/assets/privateOrder/general/top5-其他.png')
}
})
this.initDistribution()
// console.log(this.attackRanking)
})
},
//
initDistribution() {
const chartDom = document.getElementById('section-pie')
@ -198,7 +219,7 @@ export default {
formatter: (name) => {
let total = 0
let target
this.data.forEach((v) => {
this.attackRanking.forEach((v) => {
total += Number(v.value)
if (v.name === name) {
target = v.value
@ -247,7 +268,7 @@ export default {
labelLine: {
show: false
},
data: this.data
data: this.attackRanking
}
]
}

@ -84,6 +84,7 @@
<div class="monitor-detail">
<div
v-for="(item, index) in securityMonitor.detail"
v-show="index<3"
:key="index"
class="monitor-detail-item"
>
@ -111,9 +112,9 @@
:data-obj="'安全监测'"
@click="getAttackSource(item.id)"
>
<span :data-obj="'安全监测'">{{ item.date }}</span>
<span :data-obj="'安全监测'">{{ item.ip }}</span>
<span :data-obj="'安全监测'" :title="item.type">{{ item.type }}</span>
<span>{{ item.attackTime }}</span>
<span>{{ item.attackedIp }}</span>
<span>{{ $filterDict('tc_attack_type',item.attackType) }}</span>
</div>
</vue-seamless-scroll>
</div>
@ -177,7 +178,7 @@
<div class="dialog_little_title">攻击类型</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.attackType }}</div>
<div class="dialog_little_ctn">{{ $filterDict('tc_attack_type',tableDataPop.attackType) }}</div>
</el-col>
</el-row>
<el-row>
@ -208,26 +209,26 @@
</div>
</el-col>
</el-row>
<el-row>
<!-- <el-row>
<el-col :span="6">
<div class="dialog_little_title">受攻击目标类型</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.attackedType }}</div>
<div class="dialog_little_ctn">{{ $filterDict('tc_attack_type',tableDataPop.attackType) }}</div>
</el-col>
</el-row>
</el-row> -->
<el-row>
<el-col :span="6">
<div class="dialog_little_title">网站安全等级</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.webLevel }}</div>
<div class="dialog_little_ctn">{{ $filterDict('tc_net_safety_level',tableDataPop.level) }}</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_title">联系电话</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.contactTel }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.phoneNum }}</div>
</el-col>
</el-row>
<el-row>
@ -236,14 +237,14 @@
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">
{{ tableDataPop.subordinateDept }}
{{ tableDataPop.affUnit }}
</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_title">联系人</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.contactName }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.linkMan }}</div>
</el-col>
</el-row>
</template>
@ -293,7 +294,9 @@ import vueSeamlessScroll from 'vue-seamless-scroll'
import ModuleTitle from '../../common/ModuleTitle.vue'
import attackSituation from './attackSituation.vue'
import ExcelTable from '@/components/ExcelTable'
import { listSystem, listUnit, listWeb, listIDCunit, listSource } from '@/api/zongzhi/st.js'
import { listSystem, listUnit, listWeb, listIDCunit, listSource, saftyscreenSupervise, saftyscreenSafety,
listDetection, getDetection
} from '@/api/zongzhi/st.js'
import {
yingTanZhen,
yingTanZhenKeyValue,
@ -339,7 +342,12 @@ export default {
pageSize: 10
}, //
total: 0, //
time: null,
checkTotal: 0,
checkParams: {
pageNum: 1,
pageSize: 10
},
//
dialogWidth: 0,
dialogStatus: false,
@ -388,100 +396,100 @@ export default {
superviseObject: [
{
title: '政府网站',
num: 446,
num: 0,
className: 'item1',
url: require('@/assets/privateOrder/general/icon-政府网站.png')
},
{
title: '监管单位',
num: 2098,
num: 0,
className: 'item2',
url: require('@/assets/privateOrder/general/icon-监管单位.png')
},
{
title: '网站监测',
num: 2658,
num: 0,
className: 'item3',
url: require('@/assets/privateOrder/general/icon-网站监测.png')
},
{
title: 'IDC单位',
num: 1,
num: 0,
className: 'item4',
url: require('@/assets/privateOrder/general/icon-IDC单位.png')
},
{
title: '等保系统',
num: 181,
num: 0,
className: 'item5',
url: require('@/assets/privateOrder/general/icon-等保系统.png')
},
{
title: '等保单位',
num: 109,
num: 0,
className: 'item6',
url: require('@/assets/privateOrder/general/icon-等保单位.png')
}
],
securityMonitor: {
url: require('@/assets/privateOrder/general/icon-网络攻击.png'),
title: '网络攻击()',
total: 3225.5,
title: '网络攻击()',
total: 0,
detail: [
{
title: '入侵攻击',
num: 1455.92
},
{
title: '恶意扫描',
num: 2325.24
},
{
title: '僵木蠕病毒',
num: 796.152
}
// {
// title: '',
// num: 1455.92
// },
// {
// title: '',
// num: 2325.24
// },
// {
// title: '',
// num: 796.152
// }
]
},
tableDataPop: {
id: 1,
attackTime: '2023-07-30',
sourceIp: '192.168.0.114',
attackType: '网络爬虫',
attackIpRegion: '美国',
attackedIp: '192.168.5.0',
attackedIpRegion: '太仓',
attackedType: '网络爬虫',
webLevel: '1级别',
contactTel: '18703885598',
subordinateDept: '网络安全部',
contactName: '张三'
// id: 1,
// attackTime: '2023-07-30',
// sourceIp: '192.168.0.114',
// attackType: '',
// attackIpRegion: '',
// attackedIp: '192.168.5.0',
// attackedIpRegion: '',
// attackedType: '',
// webLevel: '1',
// contactTel: '18703885598',
// subordinateDept: '',
// contactName: ''
},
tableData: [
{
date: '2022-02-13',
ip: '荷兰/178.128.242.134',
type: '挖矿'
},
{
date: '2022-02-13',
ip: '荷兰/178.128.242.134',
type: '挖矿'
},
{
date: '2022-02-13',
ip: '杭州市/60.190.232.14',
type: '扫描行为'
},
{
date: '2022-02-13',
ip: '荷兰/178.128.242.134',
type: '挖矿'
},
{
date: '2022-02-13',
ip: '荷兰/178.128.242.134',
type: '挖矿'
}
// {
// date: '2022-02-13',
// ip: '/178.128.242.134',
// type: ''
// },
// {
// date: '2022-02-13',
// ip: '/178.128.242.134',
// type: ''
// },
// {
// date: '2022-02-13',
// ip: '/60.190.232.14',
// type: ''
// },
// {
// date: '2022-02-13',
// ip: '/178.128.242.134',
// type: ''
// },
// {
// date: '2022-02-13',
// ip: '/178.128.242.134',
// type: ''
// }
],
excelData: null,
excelDataHeader: null
@ -505,9 +513,20 @@ export default {
destroyed() {
clearInterval(this.attackTime) //
clearInterval(this.tableTime)
clearInterval(this.time)
},
mounted() {
this.changeBtn() //
this.getSaftyscreenSafety()
this.getListDetection()
this.time = setInterval(() => { //
if (this.tableData.length >= this.checkTotal) {
clearInterval(this.time)
} else {
this.checkParams.pageNum = this.checkParams.pageNum + 1
this.getListDetection()
}
}, 6000)
// this.getDataSource() //
//
// getLatest().then((res) => {
@ -565,9 +584,43 @@ export default {
},
async getAttackSource(id) {
this.dialogWidth = '1000px'
getDetection(id).then(res => {
this.tableDataPop = res.data
this.dialogType = '安全监测'
this.dialogStatus = true
})
// await this.AttackClick(id)
this.dialogStatus = true
this.dialogType = '安全监测'
},
/**
* 安全监管List
*/
getListDetection() {
listDetection(this.checkParams).then(res => {
this.tableData = [...this.tableData, ...res.rows]
this.checkTotal = res.total
})
},
/**
* 安全监测攻击类型统计
*/
getSaftyscreenSafety() {
saftyscreenSafety().then(res => {
this.securityMonitor.detail = res.data.list.map((item, index) => {
this.securityMonitor.total = this.securityMonitor.total + item.count
return {
title: this.$filterDict('tc_attack_type', item.attackType),
num: item.count
}
})
})
},
/**
* 监管对象各类别统计量
*/
getSaftyscreenSupervise() {
saftyscreenSupervise().then(res => {
// this.superviseObject[4].num = res.data.
})
},
/**
* 表格参数重置

Loading…
Cancel
Save