1004 lines
31 KiB
Plaintext
1004 lines
31 KiB
Plaintext
webpackJsonp([25],{
|
|
|
|
/***/ "6bTi":
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
|
|
|
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/typeof.js
|
|
var helpers_typeof = __webpack_require__("pFYg");
|
|
var typeof_default = /*#__PURE__*/__webpack_require__.n(helpers_typeof);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/echarts/map/js/world.js
|
|
var world = __webpack_require__("9OQl");
|
|
var world_default = /*#__PURE__*/__webpack_require__.n(world);
|
|
|
|
// EXTERNAL MODULE: ./src/components/Pagination.vue + 2 modules
|
|
var Pagination = __webpack_require__("cMGX");
|
|
|
|
// EXTERNAL MODULE: ./src/components/BarChart.vue + 2 modules
|
|
var BarChart = __webpack_require__("2u/A");
|
|
|
|
// EXTERNAL MODULE: ./src/common/util.js
|
|
var util = __webpack_require__("s0MJ");
|
|
|
|
// EXTERNAL MODULE: ./src/common/meta.js
|
|
var meta = __webpack_require__("BoBM");
|
|
|
|
// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js
|
|
var vuex_esm = __webpack_require__("NYxO");
|
|
|
|
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/pages/count/SecurityReport.vue
|
|
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var SecurityReport = ({
|
|
components: {
|
|
Pagination: Pagination["a" /* default */],
|
|
BarChart: BarChart["a" /* default */]
|
|
},
|
|
data: function data() {
|
|
return {
|
|
/*topTitle: roleAction.topTitle,
|
|
province: roleAction.province,
|
|
selectAllDomain: roleAction.selectAllDomain,*/
|
|
total: 10,
|
|
pageSize: 10,
|
|
currentPage: 1,
|
|
areaList: [],
|
|
areaInfo: [],
|
|
tableData: [],
|
|
pkgName: '',
|
|
activeName: '1',
|
|
tractIp: '',
|
|
tractCome: '',
|
|
options: [],
|
|
domainId: [],
|
|
hostname: '',
|
|
shortTime: 1,
|
|
webSiteIp: [],
|
|
webSiteA: [],
|
|
ccSiteIp: [],
|
|
ccSiteA: [],
|
|
dataSiteIp: [],
|
|
dataSiteA: [],
|
|
isDownLoad: true,
|
|
collapseTags: 2,
|
|
webAttackTypeData: [],
|
|
qgCode: this.$store.state.qgCode,
|
|
allDomainCode: 'all',
|
|
attackTypes: meta["a" /* default */].attackTypes,
|
|
actions: meta["a" /* default */].actions,
|
|
searchParams: {
|
|
attackType: '',
|
|
action: '',
|
|
sourceIp: ''
|
|
},
|
|
URL: {
|
|
getDomainList: '/rest/secReport/getDomainList',
|
|
getAttackOverview: '/rest/secReport/attackOverview',
|
|
getTopGraphics: '/rest/secReport/topGraphics',
|
|
getAttackLog: '/rest/secReport/attackLog',
|
|
downloadExl: '/secReport/downloadExcel',
|
|
downloadcheck: '/rest/secReport/downloadcheck',
|
|
getAreaList: '/website/rest/queryArea'
|
|
}
|
|
};
|
|
},
|
|
|
|
computed: Object(vuex_esm["b" /* mapState */])({
|
|
contextPath: 'urlHost',
|
|
super: 'super',
|
|
myHeight: 'cdnConHeight',
|
|
roleAction: 'roleAction'
|
|
}),
|
|
watch: {
|
|
areaInfo: function areaInfo(val) {
|
|
var that = this;
|
|
that.proChange(val);
|
|
that.getDomainList();
|
|
},
|
|
domainId: function domainId(val) {
|
|
this.roleAction.selectAllDomain && this.selDomainChange(val);
|
|
}
|
|
},
|
|
mounted: function mounted() {
|
|
var that = this;
|
|
if (that.roleAction.province) {
|
|
//加载省份列表
|
|
that.getProvinces();
|
|
} else {
|
|
that.getDomainList();
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
//省份下拉框选择全国则其他节点不可选,选择其他节点全国节点不可选
|
|
proChange: function proChange(val) {
|
|
if (val.length == 0) {
|
|
for (var i = 0; i < this.areaList.length; i++) {
|
|
if (this.areaList[i].disabled == true || this.areaList[i].disabled == undefined) {
|
|
this.areaList[i].disabled = false;
|
|
}
|
|
}
|
|
} else {
|
|
if (val.indexOf(this.qgCode) != -1) {
|
|
for (var i = 1; i < this.areaList.length; i++) {
|
|
this.areaList[i].disabled = true;
|
|
}
|
|
} else {
|
|
this.areaList[0].disabled = true;
|
|
for (var i = 1; i < this.areaList.length; i++) {
|
|
this.areaList[i].disabled = false;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
//域名下拉框选择全部则其他节点不可选,选择其他节点则全部节点不可选
|
|
selDomainChange: function selDomainChange(val) {
|
|
if (val.length == 0) {
|
|
for (var i = 0; i < this.options.length; i++) {
|
|
if (this.options[i].disabled == true || this.options[i].disabled == undefined) {
|
|
this.options[i].disabled = false;
|
|
}
|
|
}
|
|
} else {
|
|
if (val.indexOf(this.allDomainCode) != -1) {
|
|
for (var i = 1; i < this.options.length; i++) {
|
|
this.options[i].disabled = true;
|
|
}
|
|
} else {
|
|
this.options[0].disabled = true;
|
|
for (var i = 1; i < this.options.length; i++) {
|
|
this.options[i].disabled = false;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
//选择查询时间
|
|
setShortTime: function setShortTime(time) {
|
|
this.shortTime = time;
|
|
this.getWebData();
|
|
this.getTopGraphics();
|
|
this.currentPage = 1;
|
|
this.searchParams.sourceIp = '';
|
|
this.getData();
|
|
},
|
|
getProvinces: function getProvinces() {
|
|
var that = this;
|
|
this.$axios({
|
|
method: 'get',
|
|
url: that.contextPath + that.URL.getAreaList + "?type=QUERY",
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
that.areaList = res || [];
|
|
if (that.areaList.length > 0) {
|
|
that.areaInfo.push(res[0].value);
|
|
for (var i = 1; i < that.areaList.length; i++) {
|
|
that.areaList[i].disabled = true;
|
|
}
|
|
}
|
|
});
|
|
},
|
|
handleClick: function handleClick(obj) {
|
|
this.getTopGraphics();
|
|
this.currentPage = 1;
|
|
this.searchParams.sourceIp = '';
|
|
this.getData();
|
|
},
|
|
downPDF: function downPDF() {
|
|
var _this = this;
|
|
|
|
this.$confirm("您确定要下载选中域名的PDF文件吗?", '提示', {
|
|
dangerouslyUseHTMLString: true,
|
|
customClass: 'wafConfirm',
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(function () {
|
|
_this.getPdf();
|
|
}).catch(function () {});
|
|
},
|
|
changeDomian: function changeDomian(val) {
|
|
if (val.length == 0) {
|
|
return;
|
|
}
|
|
this.getWebData();
|
|
this.getTopGraphics();
|
|
this.currentPage = 1;
|
|
this.searchParams.sourceIp = '';
|
|
this.getData();
|
|
},
|
|
getDomainList: function getDomainList() {
|
|
var that = this;
|
|
var formData = this.$qs.stringify({
|
|
areaCode: that.areaInfo.join(','),
|
|
name: ''
|
|
});
|
|
this.$axios({
|
|
method: 'post',
|
|
url: that.contextPath + that.URL.getDomainList,
|
|
data: formData,
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
that.options = res || [];
|
|
that.domainId = [];
|
|
if (that.options.length > 0) {
|
|
if (that.roleAction.selectAllDomain) {
|
|
//默认选择全部
|
|
that.options.splice(0, 0, { hostname: '全部', domainId: that.allDomainCode });
|
|
that.domainId.push('all');
|
|
for (var i = 1; i < that.options.length; i++) {
|
|
that.options[i].disabled = true;
|
|
}
|
|
} else {
|
|
//默认选择第一个域名
|
|
that.domainId.push(that.options[0].domainId);
|
|
}
|
|
that.currentPage = 1;
|
|
that.searchParams.sourceIp = '';
|
|
that.getWebData();
|
|
that.getTopGraphics();
|
|
that.getData();
|
|
}
|
|
});
|
|
},
|
|
getDomains: function getDomains(domain) {
|
|
if ((typeof domain === 'undefined' ? 'undefined' : typeof_default()(domain)) == 'object') {
|
|
domain = '';
|
|
}
|
|
var that = this;
|
|
var formData = this.$qs.stringify({
|
|
areaCode: that.areaInfo.join(','),
|
|
name: domain
|
|
});
|
|
this.$axios({
|
|
method: 'post',
|
|
url: that.contextPath + that.URL.getDomainList,
|
|
data: formData,
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
that.options = res || [];
|
|
if (that.roleAction.selectAllDomain) {
|
|
if (!domain && that.options.length > 0) {
|
|
that.options.splice(0, 0, { hostname: '全部', domainId: that.allDomainCode });
|
|
that.selDomainChange(that.domainId);
|
|
} else if (that.options.length > 0 && that.domainId.indexOf(that.allDomainCode) != -1) {
|
|
for (var i = 0; i < that.options.length; i++) {
|
|
that.options[i].disabled = true;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
//加载web攻击曲线图
|
|
getWebData: function getWebData() {
|
|
var formData = this.$qs.stringify({
|
|
orgCode: this.areaInfo.join(','),
|
|
domainIdSet: this.domainId.join(','),
|
|
period: this.shortTime
|
|
});
|
|
var that = this;
|
|
this.$axios({
|
|
method: 'post',
|
|
url: that.contextPath + that.URL.getAttackOverview,
|
|
data: formData,
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
var datax = [];
|
|
var dataY = [];
|
|
var data = res;
|
|
if (res != null) {
|
|
for (var i = 0; i < data.length; i++) {
|
|
datax.push(data[i].name);
|
|
dataY.push(data[i].value);
|
|
}
|
|
that.getWeb(datax, dataY);
|
|
} else {
|
|
that.getWeb(datax, dataY);
|
|
}
|
|
});
|
|
},
|
|
getWeb: function getWeb(datax, dataY) {
|
|
var webBar = this.$echarts.init(document.getElementById('webAllTract'));
|
|
webBar.setOption({
|
|
tooltip: {
|
|
trigger: 'axis'
|
|
},
|
|
toolbox: {
|
|
show: true
|
|
},
|
|
calculable: true,
|
|
xAxis: [{
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#96A5BC',
|
|
width: 1 //这里是为了突出显示加上的
|
|
}
|
|
},
|
|
type: 'category',
|
|
boundaryGap: false,
|
|
data: datax
|
|
}],
|
|
yAxis: [{
|
|
type: 'value',
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
color: '#EEEFF5',
|
|
width: 1
|
|
}
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff'
|
|
}
|
|
},
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
textStyle: {
|
|
color: '#fff'
|
|
}
|
|
}
|
|
}],
|
|
grid: {
|
|
left: '40',
|
|
top: '10',
|
|
right: '60',
|
|
bottom: '0',
|
|
containLabel: true
|
|
},
|
|
series: [{
|
|
name: '攻击次数',
|
|
type: 'line',
|
|
stack: '总量',
|
|
smooth: true,
|
|
color: '#357FFF',
|
|
itemStyle: {
|
|
normal: {
|
|
lineStyle: {
|
|
color: '#357FFF'
|
|
},
|
|
areaStyle: {
|
|
type: 'default'
|
|
},
|
|
color: {
|
|
type: 'linear',
|
|
x: 0,
|
|
y: 0,
|
|
x2: 0,
|
|
y2: 1,
|
|
colorStops: [{
|
|
offset: 0,
|
|
color: '#A3D2F9' // 0% 处的颜色
|
|
}, {
|
|
offset: 1,
|
|
color: '#A3D2F9' // 100% 处的颜色
|
|
}],
|
|
globalCoord: false // 缺省为 false
|
|
}
|
|
}
|
|
},
|
|
data: dataY
|
|
}]
|
|
});
|
|
},
|
|
getWebTract: function getWebTract() {
|
|
this.initPie();
|
|
this.setTract();
|
|
},
|
|
getTopGraphics: function getTopGraphics() {
|
|
var formData = this.$qs.stringify({
|
|
orgCode: this.areaInfo.join(','),
|
|
domainIdSet: this.domainId.join(','),
|
|
period: this.shortTime,
|
|
attackType: this.activeName
|
|
});
|
|
var that = this;
|
|
this.$axios({
|
|
method: 'post',
|
|
url: that.contextPath + that.URL.getTopGraphics,
|
|
data: formData,
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
if (res != null) {
|
|
if (that.activeName == '1') {
|
|
that.getWebPic(res);
|
|
}
|
|
if (that.activeName == '2') {
|
|
that.getCCPic(res);
|
|
}
|
|
if (that.activeName == '5') {
|
|
that.getDataPic(res);
|
|
}
|
|
} else {
|
|
if (that.activeName == '1') {
|
|
that.getWebPic([]);
|
|
}
|
|
if (that.activeName == '2') {
|
|
that.getCCPic([]);
|
|
}
|
|
if (that.activeName == '5') {
|
|
that.getDataPic([]);
|
|
}
|
|
}
|
|
});
|
|
},
|
|
getWebAttackTypeData: function getWebAttackTypeData(data) {
|
|
var that = this,
|
|
attackTypeData = data || [];
|
|
//计算攻击总数
|
|
var attackSum = attackTypeData.reduce(function (sum, currValue) {
|
|
return sum + currValue.value;
|
|
}, 0);
|
|
that.webAttackTypeData = attackTypeData.map(function (item) {
|
|
var percent = item.value / attackSum * 100;
|
|
item.percent = percent.toFixed(2) + '%'; //百分比保留两位小数
|
|
//item.percent = percent + '%';
|
|
return item;
|
|
});
|
|
},
|
|
getWebPic: function getWebPic(data) {
|
|
var dataX = [];
|
|
var dataY = [];
|
|
var pieData = data.pieChart || [];
|
|
var ipChart = data.ipChart || [];
|
|
var regionChart = data.regionChart || [];
|
|
var ipsum = 0;
|
|
var regionsum = 0;
|
|
for (var i = 0; i < pieData.length; i++) {
|
|
dataX.push(pieData[i].name);
|
|
}
|
|
for (var j = 0; j < ipChart.length; j++) {
|
|
ipsum += ipChart[j].value;
|
|
}
|
|
for (var n = 0; n < regionChart.length; n++) {
|
|
regionsum += regionChart[n].value;
|
|
}
|
|
for (var m = 0; m < ipChart.length; m++) {
|
|
ipChart[m].perWidth = ipChart[m].value / ipsum * 100 + "%";
|
|
}
|
|
for (var o = 0; o < regionChart.length; o++) {
|
|
regionChart[o].perWidth = regionChart[o].value / regionsum * 100 + "%";
|
|
}
|
|
dataY = pieData;
|
|
var attackSum = dataY.reduce(function (sum, currValue) {
|
|
return sum + currValue.value;
|
|
}, 0);
|
|
this.webSiteIp = ipChart;
|
|
this.webSiteA = regionChart;
|
|
this.initPie(dataX, dataY, attackSum);
|
|
},
|
|
getCCPic: function getCCPic(data) {
|
|
var ipChart = data.ipChart || [];
|
|
var regionChart = data.regionChart || [];
|
|
var ipsum = 0;
|
|
var regionsum = 0;
|
|
for (var j = 0; j < ipChart.length; j++) {
|
|
ipsum += ipChart[j].value;
|
|
}
|
|
for (var n = 0; n < regionChart.length; n++) {
|
|
regionsum += regionChart[n].value;
|
|
}
|
|
for (var m = 0; m < ipChart.length; m++) {
|
|
ipChart[m].perWidth = ipChart[m].value / ipsum * 100 + "%";
|
|
}
|
|
for (var o = 0; o < regionChart.length; o++) {
|
|
regionChart[o].perWidth = regionChart[o].value / regionsum * 100 + "%";
|
|
}
|
|
this.ccSiteIp = ipChart;
|
|
this.ccSiteA = regionChart;
|
|
},
|
|
getDataPic: function getDataPic(data) {
|
|
var ipChart = data.ipChart || [];
|
|
var regionChart = data.regionChart || [];
|
|
var ipsum = 0;
|
|
var regionsum = 0;
|
|
for (var j = 0; j < ipChart.length; j++) {
|
|
ipsum += ipChart[j].value;
|
|
}
|
|
for (var n = 0; n < regionChart.length; n++) {
|
|
regionsum += regionChart[n].value;
|
|
}
|
|
for (var m = 0; m < ipChart.length; m++) {
|
|
ipChart[m].perWidth = ipChart[m].value / ipsum * 100 + "%";
|
|
}
|
|
for (var o = 0; o < regionChart.length; o++) {
|
|
regionChart[o].perWidth = regionChart[o].value / regionsum * 100 + "%";
|
|
}
|
|
this.dataSiteIp = ipChart;
|
|
this.dataSiteA = regionChart;
|
|
},
|
|
initPie: function initPie(dataX, dataY, sum) {
|
|
var webPie = this.$echarts.init(document.getElementById('webPie'));
|
|
this.getWebAttackTypeData(dataY);
|
|
webPie.setOption({
|
|
color: ['#33ACFD', '#1E5BD9', '#32DD76', '#AADD32', '#FFE43E', '#FF9632'],
|
|
tooltip: {
|
|
trigger: 'item',
|
|
//formatter: "{a} <br/>{b} : {c} ({d}%)"
|
|
formatter: function formatter(data) {
|
|
return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + (data.value / sum * 100).toFixed(2) + "%)";
|
|
}
|
|
},
|
|
legend: {
|
|
type: 'scroll',
|
|
orient: 'vertical',
|
|
left: 'left',
|
|
itemWidth: 12,
|
|
itemHeight: 12,
|
|
data: dataX,
|
|
top: '0',
|
|
pageIconSize: 10
|
|
},
|
|
series: [{
|
|
name: '攻击类型',
|
|
type: 'pie',
|
|
radius: ['50%', '80%'],
|
|
center: ['55%', '46%'],
|
|
color: ['#33ACFD', '#1E5BD9', '#32DD76', '#AADD32', '#FFE43E', '#FF9632'],
|
|
data: dataY,
|
|
itemStyle: {
|
|
normal: {
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false
|
|
}
|
|
},
|
|
emphasis: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
}
|
|
}]
|
|
});
|
|
},
|
|
|
|
//获取攻击日志信息
|
|
getData: function getData() {
|
|
var that = this;
|
|
if (that.searchParams.sourceIp && !meta["a" /* default */].Regex.ip.test(that.searchParams.sourceIp)) {
|
|
that.$alert('攻击来源IP输入有误', '提示', {
|
|
customClass: 'wafConfirm',
|
|
confirmButtonText: '我知道了',
|
|
type: 'warning'
|
|
});
|
|
return;
|
|
}
|
|
var formData = that.$qs.stringify({
|
|
orgCode: that.areaInfo.join(','),
|
|
domainIdSet: that.domainId.join(','),
|
|
period: that.shortTime,
|
|
attackType: that.activeName,
|
|
topage: this.currentPage - 1,
|
|
pageSize: this.pageSize,
|
|
// attack: that.searchParams.attackType,
|
|
// action: that.searchParams.action,
|
|
ip: that.searchParams.sourceIp
|
|
});
|
|
that.$axios({
|
|
method: 'post',
|
|
url: that.contextPath + that.URL.getAttackLog,
|
|
data: formData,
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
if (res != null) {
|
|
that.tableData = res.data;
|
|
that.total = res.totalItems;
|
|
that.pageSize = res.pageSize;
|
|
that.currentPage = res.currentPage + 1;
|
|
} else {
|
|
that.tableData = [];
|
|
that.total = 0;
|
|
that.pageSize = 10;
|
|
that.currentPage = 1;
|
|
}
|
|
});
|
|
},
|
|
downloadExl: function downloadExl() {
|
|
var that = this;
|
|
var formData = this.$qs.stringify({
|
|
orgCode: this.areaInfo.join(','),
|
|
domainIdSet: this.domainId.join(','),
|
|
period: this.shortTime,
|
|
attackType: this.activeName
|
|
});
|
|
this.$axios({
|
|
method: 'post',
|
|
url: that.contextPath + that.URL.downloadcheck,
|
|
data: formData,
|
|
needInterceptors: true,
|
|
showError: true,
|
|
loader: true
|
|
}).then(function (res) {
|
|
that.$confirm("您确定要下载选中域名的excel文件吗?", '提示', {
|
|
dangerouslyUseHTMLString: true,
|
|
customClass: 'wafConfirm',
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(function () {
|
|
window.location.href = that.contextPath + that.URL.downloadExl + '?domainIdSet=' + that.domainId.join(',') + '&orgCode=' + that.areaInfo.join(',') + '&period=' + that.shortTime + '&attackType=' + that.activeName;
|
|
}).catch(function () {});
|
|
});
|
|
},
|
|
sizeChange: function sizeChange(val) {
|
|
this.currentPage = 1;
|
|
this.pageSize = val;
|
|
this.getData();
|
|
document.getElementsByClassName('el-table__body-wrapper is-scrolling-none')[1].scrollTop = 0;
|
|
},
|
|
currentChange: function currentChange(val) {
|
|
this.currentPage = val;
|
|
this.getData();
|
|
document.getElementsByClassName('el-table__body-wrapper is-scrolling-none')[1].scrollTop = 0;
|
|
}
|
|
}
|
|
});
|
|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{"id":"data-v-3b5e3fa7","hasScoped":false,"transformToRequire":{"video":["src","poster"],"source":"src","img":"src","image":"xlink:href"},"buble":{"transforms":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/pages/count/SecurityReport.vue
|
|
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-breadcrumb',{attrs:{"separator-class":"el-icon-arrow-right"}},[(_vm.roleAction.topTitle)?_c('el-breadcrumb-item',{staticClass:"con-ptitle",attrs:{"to":{ path: '/CDNindex' }}},[_vm._v("Web应用防火墙")]):_vm._e(),_vm._v(" "),(!_vm.roleAction.topTitle)?_c('el-breadcrumb-item',{staticClass:"con-ptitle"},[_vm._v("统计")]):_vm._e(),_vm._v(" "),_c('el-breadcrumb-item',[_vm._v("安全报表")])],1),_vm._v(" "),_c('div',{staticClass:"con-content",style:({height:_vm.myHeight})},[_c('div',{attrs:{"id":"pdfDom"}},[_c('div',{staticClass:"handle"},[(_vm.roleAction.province)?_c('span',{staticClass:"search-name"},[_vm._v("省份")]):_vm._e(),_vm._v(" "),(_vm.roleAction.province)?_c('el-select',{attrs:{"size":"small","multiple":"","collapse-tags":"","placeholder":"请选择省份"},model:{value:(_vm.areaInfo),callback:function ($$v) {_vm.areaInfo=$$v},expression:"areaInfo"}},_vm._l((_vm.areaList),function(item){return _c('el-option',{key:item.value,attrs:{"label":item.label,"disabled":item.disabled,"value":item.value}})}),1):_vm._e(),_vm._v(" "),_c('span',{staticClass:"search-name left-space"},[_vm._v("选择域名")]),_vm._v(" "),_c('el-select',{staticClass:"custom-multi-select",attrs:{"multiple":"","multiple-limit":35,"collapse-tags":"","filterable":"","remote":"","remote-method":_vm.getDomains,"placeholder":"请输入网站域名","size":"small","popper-class":"defaultSelect"},on:{"focus":_vm.getDomains,"change":_vm.changeDomian},model:{value:(_vm.domainId),callback:function ($$v) {_vm.domainId=$$v},expression:"domainId"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.domainId,attrs:{"disabled":item.disabled,"label":item.hostname,"value":item.domainId}})}),1),_vm._v(" "),_c('span',{staticClass:"search-name left-space"},[_vm._v("查询时间")]),_vm._v(" "),_c('el-button-group',[_c('el-button',{class:[_vm.shortTime == 2?'stHover':'stDefault'],attrs:{"size":"small","type":"primary"},on:{"click":function($event){return _vm.setShortTime(2)}}},[_vm._v("昨天")]),_vm._v(" "),_c('el-button',{class:[_vm.shortTime == 1?'stHover':'stDefault'],attrs:{"size":"small","type":"primary"},on:{"click":function($event){return _vm.setShortTime(1)}}},[_vm._v("今天")]),_vm._v(" "),_c('el-button',{class:[_vm.shortTime == 3?'stHover':'stDefault'],attrs:{"size":"small","type":"primary"},on:{"click":function($event){return _vm.setShortTime(3)}}},[_vm._v("7天")]),_vm._v(" "),_c('el-button',{class:[_vm.shortTime == 4?'stHover':'stDefault'],attrs:{"size":"small","type":"primary"},on:{"click":function($event){return _vm.setShortTime(4)}}},[_vm._v("30天")])],1)],1),_vm._v(" "),_c('div',{staticClass:"con_label"},[_c('div',{staticClass:"frontTag"}),_vm._v("攻击总量\n "),_c('el-button',{staticClass:"handle-btn",attrs:{"size":"small"},on:{"click":function($event){return _vm.downPDF()}}},[_vm._v("下载PDF")])],1),_vm._v(" "),_c('div',{staticClass:"con-horizontal-pic",attrs:{"id":"webAllTract"}}),_vm._v(" "),_vm._m(0),_vm._v(" "),_c('el-tabs',{attrs:{"type":"border-card"},on:{"tab-click":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:"activeName"}},[_c('el-tab-pane',{attrs:{"label":"Web攻击防护","name":"1"}},[_c('el-row',{attrs:{"gutter":0}},[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("安全攻击类型分布")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"picH",attrs:{"id":"webPie"}})])]),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"table-area"},[_c('el-table',{ref:"webAttackTypeTable",staticClass:"secTable",staticStyle:{"width":"100%"},attrs:{"border":"","stripe":"true","data":_vm.webAttackTypeData,"empty-text":"暂无数据","max-height":"250"}},[_c('el-table-column',{attrs:{"prop":"name","label":"攻击类型"}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"value","label":"次数"}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"percent","label":"占比"}})],1)],1)])],1),_vm._v(" "),_c('el-row',{attrs:{"gutter":0}},[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("攻击来源IP TOP5")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('BarChart',{attrs:{"sumWidth":'75%',"lists":_vm.webSiteIp,"numWidth":'20%'}})],1)]),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("攻击来源区域 TOP5")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('BarChart',{attrs:{"sumWidth":'75%',"lists":_vm.webSiteA,"numWidth":'20%'}})],1)])],1)],1),_vm._v(" "),_c('el-tab-pane',{attrs:{"label":"CC安全防护","name":"2"}},[_c('el-row',{attrs:{"gutter":0}},[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("攻击来源IP TOP5")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('BarChart',{attrs:{"sumWidth":'75%',"lists":_vm.ccSiteIp,"numWidth":'20%'}})],1)]),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("攻击来源区域 TOP5")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('BarChart',{attrs:{"sumWidth":'75%',"lists":_vm.ccSiteA,"numWidth":'20%'}})],1)])],1)],1),_vm._v(" "),_c('el-tab-pane',{attrs:{"label":"数据风控","name":"5"}},[_c('el-row',{attrs:{"gutter":0}},[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("攻击来源IP TOP5")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('BarChart',{attrs:{"sumWidth":'75%',"lists":_vm.dataSiteIp,"numWidth":'20%'}})],1)]),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"grid-content"},[_c('div',{staticClass:"con_label"},[_vm._v("攻击来源区域 TOP5")])]),_vm._v(" "),_c('div',{staticClass:"grid-content"},[_c('BarChart',{attrs:{"sumWidth":'75%',"lists":_vm.dataSiteA,"numWidth":'20%'}})],1)])],1)],1)],1)],1),_vm._v(" "),_vm._m(1),_vm._v(" "),_c('div',{staticClass:"con_label"},[_c('span',{staticClass:"search-name left-space"},[_vm._v("攻击来源")]),_vm._v(" "),_c('el-input',{staticClass:"search-text-btn",staticStyle:{"width":"180px"},attrs:{"placeholder":"请输入IP","size":"small"},model:{value:(_vm.searchParams.sourceIp),callback:function ($$v) {_vm.$set(_vm.searchParams, "sourceIp", $$v)},expression:"searchParams.sourceIp"}}),_vm._v(" "),_c('el-button',{attrs:{"type":"primary","size":"small"},on:{"click":function($event){return _vm.currentChange(1)}}},[_vm._v("搜索")]),_vm._v(" "),_c('el-button',{staticClass:"handle-btn",attrs:{"size":"small"},on:{"click":_vm.downloadExl}},[_vm._v("下载excel")])],1),_vm._v(" "),_c('div',{staticClass:"table-area"},[_c('el-table',{ref:"multipleTable",staticClass:"contable",staticStyle:{"width":"100%"},attrs:{"border":"","stripe":"true","data":_vm.tableData,"empty-text":"暂无数据","tooltip-effect":"dark","max-height":"600"},on:{"selection-change":function($event){}}},[_c('el-table-column',{attrs:{"prop":"rulesId","label":"触发规则编号","width":""}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"attacktime","label":"攻击时间","width":""}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"sourceIp","label":"攻击来源"}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"hostName","label":"受攻击域名"}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"attack","label":"攻击类型"}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"url","label":"URL"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('div',{staticClass:"n-rowBreak",staticStyle:{"-webkit-box-orient":"vertical","-webkit-line-clamp":"8"},attrs:{"title":scope.row.url}},[_vm._v(_vm._s(scope.row.url))])]}}])}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"reqMethod","label":"请求方法"}}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"reqParams","label":"请求参数"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('div',{staticClass:"n-rowBreak",staticStyle:{"-webkit-box-orient":"vertical","-webkit-line-clamp":"8"},attrs:{"title":scope.row.reqParams}},[_vm._v(_vm._s(scope.row.reqParams))])]}}])}),_vm._v(" "),_c('el-table-column',{attrs:{"prop":"action","label":"规则动作"}})],1)],1),_vm._v(" "),_c('Pagination',{attrs:{"total":_vm.total,"pageSize":_vm.pageSize,"currentPage":_vm.currentPage},on:{"sizeChange":_vm.sizeChange,"currentChange":_vm.currentChange}})],1)],1)}
|
|
var staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"con_label"},[_c('div',{staticClass:"frontTag"}),_vm._v("选择类型")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"con_label"},[_c('div',{staticClass:"frontTag"}),_vm._v("攻击列表\n ")])}]
|
|
var esExports = { render: render, staticRenderFns: staticRenderFns }
|
|
/* harmony default export */ var count_SecurityReport = (esExports);
|
|
// CONCATENATED MODULE: ./src/pages/count/SecurityReport.vue
|
|
function injectStyle (ssrContext) {
|
|
__webpack_require__("IWWl")
|
|
}
|
|
var normalizeComponent = __webpack_require__("VU/8")
|
|
/* script */
|
|
|
|
|
|
/* template */
|
|
|
|
/* template functional */
|
|
var __vue_template_functional__ = false
|
|
/* styles */
|
|
var __vue_styles__ = injectStyle
|
|
/* scopeId */
|
|
var __vue_scopeId__ = null
|
|
/* moduleIdentifier (server only) */
|
|
var __vue_module_identifier__ = null
|
|
var Component = normalizeComponent(
|
|
SecurityReport,
|
|
count_SecurityReport,
|
|
__vue_template_functional__,
|
|
__vue_styles__,
|
|
__vue_scopeId__,
|
|
__vue_module_identifier__
|
|
)
|
|
|
|
/* harmony default export */ var pages_count_SecurityReport = __webpack_exports__["default"] = (Component.exports);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "IWWl":
|
|
/***/ (function(module, exports) {
|
|
|
|
// removed by extract-text-webpack-plugin
|
|
|
|
/***/ })
|
|
|
|
}); |