恢复为OSCM系统

This commit is contained in:
yuxin-pc 2025-06-07 13:35:04 +08:00
parent 3e500afd15
commit 7404ea6191
14 changed files with 70 additions and 80 deletions

View File

@ -3,7 +3,7 @@ FROM nginx
# 定义作者
MAINTAINER jsc
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/ /usr/share/nginx/html/secworld/
COPY dist/ /usr/share/nginx/html/oscm/
COPY nginx.conf /etc/nginx/nginx.conf
# COPY default.conf /etc/nginx/conf.d/default.conf
RUN echo 'echo init ok!!'

View File

@ -42,7 +42,7 @@ http {
index index.html index.htm;
}
location /secworld {
location /oscm {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ oscm/index.html;
@ -50,7 +50,7 @@ http {
}
location /api {
proxy_pass http://secworld:8081;
proxy_pass http://oscm:8081;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;

View File

@ -63,7 +63,7 @@ axios.interceptors.response.use(
// console.log('拦截器响应成功')
if (response.data.code == 401) {
cookieUtil.setCookie('oscm_user', {}, 0);
window.location = '/secworld/login'
window.location = '/oscm/login'
return;
}
return response

View File

@ -101,7 +101,7 @@ axios.interceptors.response.use(
// console.log('拦截器响应成功')
if (response.data.code == 401) {
cookieUtil.setCookie('oscm_user', {}, 0)
window.location = '/secworld/login'
window.location = '/oscm/login'
return
}
return response

View File

@ -41,7 +41,7 @@ Vue.use(VueRouter)
Vue.config.productionTip = false
const routes = [
{
path: '/secworld', component: Index,
path: '/oscm', component: Index,
children: [
{path: '', component: OverView, meta: {keepAlive: true}},
{path: 'home', component: OverView, meta: {keepAlive: true}},
@ -69,7 +69,7 @@ const routes = [
{path: 'settings/wordBank', component: WordBankTab, meta: {keepAlive: true}}
]
},
{path: '/secworld/login', component: login}
{path: '/oscm/login', component: login}
]
const router = new VueRouter({
mode: 'history',
@ -82,28 +82,28 @@ router.beforeEach((to, from, next) => {
if (userInfo && userInfo.length > 0) {
isLogin = true
}
if (to.path === '/secworld/login') {
if (to.path === '/oscm/login') {
next();
return;
}
if (isLogin) {
next()
} else {
next({path: '/secworld/login'});
next({path: '/oscm/login'});
}
// if(isLogin){
// if(to.path == '/secworld/login'){
// next({ path: '/secworld/' })
// if(to.path == '/oscm/login'){
// next({ path: '/oscm/' })
// }else{
// next()
// }
// }else{
// if(to.path == '/secworld/login'){
// if(to.path == '/oscm/login'){
// next()
// }else{
// next({ path: '/secworld/login' })
// next({ path: '/oscm/login' })
// }
// }
})

View File

@ -14,60 +14,50 @@
style="height:100%"
:router="true"
>
<el-menu-item index="/secworld/home" class="menu_item">
<el-menu-item index="/oscm/home" class="menu_item">
<h1 style="color: white;text-align: center;line-height:60px">
安全运营管理平台
采集管理平台
</h1>
</el-menu-item>
<el-submenu index="/secworld/node">
<el-submenu index="/oscm/node">
<template slot="title">
<span slot="title">资产管理</span>
<span slot="title">采集节点</span>
</template>
<el-menu-item index="/secworld/server">云服务器</el-menu-item>
<el-menu-item index="/secworld/project">漏洞扫描引擎</el-menu-item>
<el-menu-item index="/oscm/server">云服务器</el-menu-item>
<el-menu-item index="/oscm/project">采集引擎</el-menu-item>
</el-submenu>
<el-submenu index="/secworld/target">
<el-submenu index="/oscm/target">
<template slot="title">
<span slot="title">目标漏洞网站</span>
<span slot="title">采集目标</span>
</template>
<el-menu-item index="/secworld/target/website">网站目标</el-menu-item>
<el-menu-item index="/secworld/target/social">社媒目标</el-menu-item>
<el-menu-item index="/secworld/target/sensitive">高敏目标</el-menu-item>
<!-- <el-menu-item index="/secworld/target/api">API</el-menu-item>-->
<el-submenu index="/secworld/rules">
<el-menu-item index="/oscm/target/website">网站</el-menu-item>
<el-menu-item index="/oscm/target/social">社交帐号</el-menu-item>
<el-menu-item index="/oscm/target/sensitive">高敏目标</el-menu-item>
<el-menu-item index="/oscm/target/api">API</el-menu-item>
<el-submenu index="/oscm/rules">
<template slot="title">
<span slot="title">策略管理</span>
<span slot="title">规则模板</span>
</template>
<el-menu-item index="/secworld/rules/parser">策略模板</el-menu-item>
<el-menu-item index="/secworld/rules/filter">过滤配置</el-menu-item>
<el-menu-item index="/oscm/rules/parser">解析模板</el-menu-item>
<el-menu-item index="/oscm/rules/filter">过滤配置</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="/secworld/task">
<el-submenu index="/oscm/task">
<template slot="title">
<span slot="title">漏洞扫描任务</span>
<span slot="title">采集任务</span>
</template>
<el-menu-item index="/secworld/task/common">任务管理</el-menu-item>
<el-menu-item index="/secworld/task/single">漏洞扫描</el-menu-item>
<el-menu-item index="/oscm/task/common">普通任务</el-menu-item>
<el-menu-item index="/oscm/task/single">单站点任务</el-menu-item>
</el-submenu>
<el-submenu index="/secworld/settings">
<el-submenu index="/oscm/settings">
<template slot="title">
<span slot="title">响应管理</span>
<span slot="title">系统管理</span>
</template>
<el-menu-item index="/secworld/log">扫描任务日志</el-menu-item>
<el-menu-item index="/secworld/settings/wordBank">扫描任务规则</el-menu-item>
<el-menu-item index="/secworld/settings/metaData">元数据表格</el-menu-item>
<el-menu-item index="/secworld/settings/metaDict">元数据字典</el-menu-item>
<el-menu-item index="/oscm/log">运行日志</el-menu-item>
<el-menu-item index="/oscm/settings/wordBank">词库管理</el-menu-item>
<el-menu-item index="/oscm/settings/metaData">元数据表格</el-menu-item>
<el-menu-item index="/oscm/settings/metaDict">元数据字典</el-menu-item>
</el-submenu>
<el-menu-item index="" class="menu_item">
<a class="menu-link" href="http://47.115.228.133:28086/dash/main" target="_blank">
<span>资源运行管理</span>
</a>
</el-menu-item>
<el-menu-item index="" class="menu_item">
<a class="menu-link" href="http://ops.dfhsbj.net:38082/" target="_blank">
<span>漏洞挖掘利用</span>
</a>
</el-menu-item>
</el-menu>
</el-col>
<el-col :span="2" :offset="2">
@ -179,7 +169,7 @@ export default {
userApi.logout((response) => {
this.setUserInfo({});
cookieUtil.setCookie('oscm_user', {}, 0);
this.$router.push("/secworld/login");
this.$router.push("/oscm/login");
if (response.data.result) {
console.log("out");
}
@ -188,7 +178,7 @@ export default {
},
mounted: function () {
if (this.user === {}) {
this.$router.push('/secworld/login');
this.$router.push('/oscm/login');
return;
}
this.getUserInfo();
@ -203,7 +193,7 @@ export default {
let pathList = to.path.split('/');
let activeMenu = '';
if (pathList.length < 3 || pathList[2] === undefined || pathList[2] === '') {
activeMenu = "/secworld/overview";
activeMenu = "/oscm/overview";
} else {
activeMenu = to.path;
}

View File

@ -247,7 +247,7 @@ export default {
this.multipleSelection = val;
},
viewProject(index, table) {
this.$router.push('/secworld/log/detail/' + table[index].id);
this.$router.push('/oscm/log/detail/' + table[index].id);
},
jumpToScrapydLog(index, table) {
logApi.getScrapydLogURL(table[index], (response) => {

View File

@ -2,7 +2,7 @@
<div id="login_form" :style="'height:'+windowHeight+'px'">
<el-row style="height:100%;">
<el-col id="login_inner">
<h1 style="text-align:center;margin:25px;">安全运营管理平台</h1>
<h1 style="text-align:center;margin:25px;">采集管理平台</h1>
<el-form ref="form" :model="form" label-position="left" >
<el-form-item>
<el-input class="login_input" clearable v-model="form.username" placeholder="用户名"></el-input>
@ -55,7 +55,7 @@ export default {
var result = response.data;
if(result.code == 200){
cookieUtil.setCookie('oscm_user', result.content, -1)
window.location = "/secworld/"
window.location = "/oscm/"
}else{
alert("登录失败")
}
@ -65,7 +65,7 @@ export default {
mounted(){
this.windowHeight = window.innerHeight;
if(cookieUtil.getCookie('oscm_user') != {}){
this.$router.push('/secworld/')
this.$router.push('/oscm/')
}
}
}
@ -90,7 +90,7 @@ export default {
color: #999999;
}
#login_form{
background: url("/secworld/img/login.jpg");
background: url("/oscm/img/login.jpg");
background-size: contain;
}

View File

@ -6,7 +6,7 @@
<el-card class="overview_block_item_card" style="background-color: #a66dd4">
<el-row>
<el-col :span="18">
<h1 class="card_title">资产管理</h1>
<h1 class="card_title">采集节点</h1>
</el-col>
<el-col :span="6" class="card_number">
<i class="el-icon-cpu"></i>
@ -17,7 +17,7 @@
:show-text="false" color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col :span="12">
<span class="card_subtitle" @click="jumpTo('/secworld/server')">服务器在线</span>
<span class="card_subtitle" @click="jumpTo('/oscm/server')">服务器在线</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">{{ numberStats.server.positive }}
</el-col>
@ -28,7 +28,7 @@
:show-text="false" color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col :span="12">
<span class="card_subtitle" @click="jumpTo('/secworld/project')">漏洞扫描引擎启用</span>
<span class="card_subtitle" @click="jumpTo('/oscm/project')">采集引擎启用</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">{{ numberStats.project.positive }}
</el-col>
@ -40,7 +40,7 @@
<el-card class="overview_block_item_card" style="background-color: #6dd4b1">
<el-row>
<el-col :span="18">
<h1 class="card_title">目标漏洞网站</h1>
<h1 class="card_title">监控目标</h1>
</el-col>
<el-col :span="6" class="card_number">
<i class="el-icon-aim"></i>
@ -53,7 +53,7 @@
color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col :span="12">
<span class="card_subtitle" @click="jumpTo('/secworld/target/website')">网站目标</span>
<span class="card_subtitle" @click="jumpTo('/oscm/target/website')">网站目标</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">{{ numberStats.targetWebsite.positive }}
@ -67,7 +67,7 @@
color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col :span="12">
<span class="card_subtitle" @click="jumpTo('/secworld/target/social')">社媒目标</span>
<span class="card_subtitle" @click="jumpTo('/oscm/target/social')">社交帐号</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">{{ numberStats.targetSocial.positive }}
</el-col>
@ -79,7 +79,7 @@
<el-card class="overview_block_item_card" style="background-color: #34caca">
<el-row>
<el-col :span="18">
<h1 class="card_title">漏洞扫描任务</h1>
<h1 class="card_title">采集任务</h1>
</el-col>
<el-col :span="6" class="card_number">
<i class="el-icon-document"></i>
@ -91,7 +91,7 @@
:show-text="false"
color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col :span="12"><span class="card_subtitle" @click="jumpTo('/secworld/task/common')">任务管理</span>
<el-col :span="12"><span class="card_subtitle" @click="jumpTo('/oscm/task/common')">普通任务</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">{{ numberStats.taskCommon.positive }}
</el-col>
@ -102,7 +102,7 @@
color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col :span="12">
<span class="card_subtitle" @click="jumpTo('/secworld/task/single')">漏洞扫描</span>
<span class="card_subtitle" @click="jumpTo('/oscm/task/single')">单站点任务</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">{{ numberStats.taskSingle.all }}
</el-col>
@ -114,7 +114,7 @@
<el-card class="overview_block_item_card" style="background-color: #63c7ff">
<el-row>
<el-col :span="18">
<h1 class="card_title">响应管理</h1>
<h1 class="card_title">运行日志</h1>
</el-col>
<el-col :span="6" class="card_number">
<i class="el-icon-date"></i>
@ -125,7 +125,7 @@
:show-text="false"
color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col class="card_text" :span="12">扫描任务完成</el-col>
<el-col class="card_text" :span="12">采集成功率</el-col>
<el-col class="card_text" :span="12" style="text-align: right">
{{ Math.floor(numberStats.log.positive / numberStats.log.all * 100) + '%' }}
</el-col>
@ -136,7 +136,7 @@
color="#e83e8c"></el-progress>
<el-row style="margin-top: 10px">
<el-col class="card_text" :span="12">
<span class="card_subtitle" @click="jumpTo('/secworld/log')">扫描任务日志</span>
<span class="card_subtitle" @click="jumpTo('/oscm/log')">所有日志</span>
</el-col>
<el-col class="card_text" :span="12" style="text-align: right">
{{ numberStats.log.all }}

View File

@ -141,7 +141,7 @@ export default {
});
},
add() {
this.$router.push({path: '/secworld/target/api/settings'});
this.$router.push({path: '/oscm/target/api/settings'});
},
edit(index) {
this.showCronList = true;
@ -149,7 +149,7 @@ export default {
let editParam = {};
editParam.data = this.copyFormData.table[index]
editParam.isEdit = true;
this.$router.push({path: '/secworld/target/api/settings', query: editParam});
this.$router.push({path: '/oscm/target/api/settings', query: editParam});
},
deleteOne(dataBody) {
MessageBox.confirm("是否删除?", "提示", {

View File

@ -226,7 +226,7 @@ export default {
tempData.loginType = tempData.loginType.constructor === Array ? tempData.loginType[tempData.loginType.length - 1] : tempData.loginType;
apiRulesApi.save(tempData, (response) => {
if (response.data.message === 'success') {
this.$router.push({path: '/secworld/target'});
this.$router.push({path: '/oscm/target'});
Message({
message: '保存成功',
type: 'success'
@ -241,7 +241,7 @@ export default {
})
},
cancelSave() {
this.$router.push({path: '/secworld/target'})
this.$router.push({path: '/oscm/target'})
// this.$router.go(-1);
}
},

View File

@ -241,10 +241,10 @@ export default {
let editParam = {};
editParam.data = this.formData;
editParam.isEdit = true;
this.$router.push({path: '/secworld/target/website/settings', query: editParam});
this.$router.push({path: '/oscm/target/website/settings', query: editParam});
},
addCrawlRule() {
this.$router.push({path: '/secworld/target/website/settings'})
this.$router.push({path: '/oscm/target/website/settings'})
},
deleteCrawlRuleChild(index, tableData, handscope) {
MessageBox.confirm("是否删除?", "提示", {

View File

@ -706,7 +706,7 @@ export default {
tempData.storageOption = tempData.storageOption.constructor === Array ? JSON.stringify(tempData.storageOption) : tempData.storageOption
targetWebsiteApi.update(tempData, (response) => {
if (response.data.code === 200) {
this.$router.push({path: '/secworld/target/website'});
this.$router.push({path: '/oscm/target/website'});
Message({
message: '保存成功',
type: 'success'
@ -721,7 +721,7 @@ export default {
})
},
cancelSave() {
this.$router.push({path: '/secworld/target/website'})
this.$router.push({path: '/oscm/target/website'})
// this.$router.go(-1);
}
},

View File

@ -1,15 +1,15 @@
module.exports = {
publicPath: '/secworld',
publicPath: '/oscm',
devServer: {
host: '0.0.0.0',
port: 8080,
// proxy: 'http://127.0.0.1:8081'
proxy: 'http://47.115.228.133:28081'
proxy: 'http://38.54.94.107:28081'
},
chainWebpack: config => {
config.plugin('html')
.tap(args => {
args[0].title = "安全运营管理平台";
args[0].title = "采集管理平台";
return args;
})
}