HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/index356.js
import{_ as ee}from"./index192.js?v=1777008528";import{c as se,r as h,H as N,g as P,o as te,I as ne,J as F,p as s,j as n,k as l,q as t,e as g,C as x,F as f,x as u,s as d,y as m,v as b,L as z,B as H,M as ae,K as oe,z as re,G as le,bz as ie,bA as ce}from"./base-lib.js?v=1777008528";import{c as de,w as me,R as ue,b as pe,d8 as _e,c7 as ge,f as fe,a0 as ve,cZ as be}from"./utils-lib.js?v=1777008528";import{aF as we,k as ye}from"./index3.js?v=1777008528";import{scanSingleSite as he}from"./site.js?v=1777008528";import{u as xe}from"./useStore2.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";const ke={id:"safeDetectList"},Se={key:0},Ee={class:"progress-header"},Te={class:"progress-header-cot"},Ce={class:"flex items-center"},De={key:0,class:"scan-icon relative h-[8rem] w-[8rem] flex"},Me={key:1},Le={class:"progress-header-cot"},Ie={class:"scanning-progress-title"},Ne={class:"text-danger"},ze={class:"scanning-progress-cont"},He={class:"progress-header-cot"},Be={class:"progress-cont-list"},Pe={key:0},Fe={class:"inline-grid grid-cols-4 w-full mt-20px"},Ve=["onClick"],je={class:"progress_type"},qe={class:"flex-1"},Je={key:0,class:"text-danger mr-4px"},Oe={key:1},Re={key:2,class:"text-primary"},Ge={key:3},We={class:"progress_fold text-small flex items-center"},Ae={class:"mr-4px"},Ke={class:"progress_item_body"},Ze={class:"flex items-center justify-between w-full"},Qe={class:"flex items-center ml-12px"},Ue=["innerHTML"],Xe={class:"flex flex-col py-[1rem] px-[1.6rem] text-small progress_item_info"},Ye={class:"flex items-center"},$e=["innerHTML"],es={class:"flex"},ss=["innerHTML"],ts=se({__name:"index",setup(ns,{expose:V}){const j=fe(),{siteInfo:S}=xe(),{payment:E}=de(),T=h(!1),w=h([{name:"webscan",title:"网站配置安全性"},{name:"filescan",title:"文件泄露"},{name:"backup",title:"备份文件"},{name:"index",title:"首页内容风险"},{name:"webhorse",title:"挂马排查"},{name:"deadchain",title:"坏链检测"},{name:"database",title:"数据库安全"},{name:"ftps",title:"网站FTP风险"},{name:"backend",title:"网站后台安全"}]),p=h(0),C=h(""),D=h(""),e=N({scanStatus:!1,isEnd:!1,error:0,warn:0,time:0,progress:0,progressColor:"var(--el-color-primary)",progressConfig:{},statusTotal:{},result:{},progressStatus:{},active:{}});let o=null;const M=N({0:{text:"警告",bg:"rgba(var(--el-color-warning-rgb), 0.1)",color:"var(--el-color-warning-light-3)"},1:{text:"低危",bg:"rgba(var(--el-color-warning-rgb), 0.1)",color:"var(--el-color-warning-light-3)"},2:{text:"中危",bg:"rgba(var(--el-color-warning-rgb), 0.2)",color:"var(--el-color-warning)"},3:{text:"高危",bg:"rgba(var(--el-color-danger-rgb), 0.1)",color:"var(--el-color-danger)"}}),q=N({title:"安全扫描-功能介绍",height:36,ps:"扫描服务器系统的漏洞,异常用户,已安装软件的安全问题并提供修复方案.",source:66,desc:["漏洞扫描","网站配置安全性","文件泄露","备份文件","木马程序"],tabImgs:["https://www.bt.cn/Public/new/plugin/introduce/site/security-Introduction.png"]}),J=()=>{o=ve({route:"/ws_project",onMessage:W})},O=c=>{E.value.authType=="free"&&ye({sourceId:65})},R=P(()=>e.scanStatus&&!e.isEnd?"正在扫描":"定期扫描网站,提升网站安全性"),G=P(()=>e.scanStatus&&!e.isEnd?"".concat(C.value||""):e.time?"上次检测时间:".concat(e.time):"当前安全风险未知,请立即检测"),W=(c,a)=>{var v,y;if(a.data){const r=JSON.parse(a.data.replace(/'/g,'"'));if(r.hasOwnProperty("end")&&r.end){if(((y=(v=r.webinfo)==null?void 0:v.result)==null?void 0:y[r.type].length)>0?(e.progressConfig[r.type]=r.webinfo.result[r.type],e.statusTotal[r.type]=r.webinfo.result[r.type].length):e.statusTotal[r.type]=0,C.value=r.info,p.value===w.value.length-1){o==null||o.close(),p.value=0,e.scanStatus=!1,e.isEnd=!0;return}let L=new Date().getTime();p.value++,o==null||o.send({mod_name:"webscanning",def_name:"ScanSingleSite",ws_callback:L,name:S.value.name,scan_list:[w.value[p.value].name]})}else C.value=r.info,D.value=r.type,r.is_error&&e.error++}},A=c=>{e.active[c]=!e.active[c]},K=async()=>{if(e.scanStatus&&!e.isEnd||e.isEnd,e.scanStatus&&!e.isEnd){await me({title:"取消扫描",content:"确定取消扫描吗?",icon:"warning"}),o==null||o.close(),p.value=0,k();return}else e.isEnd&&(await(o==null?void 0:o.close()),p.value=0,await k());e.scanStatus=!0,J();let c=new Date().getTime();o==null||o.send({"x-http-token":window.vite_public_request_token}),o==null||o.send({mod_name:"webscanning",def_name:"ScanSingleSite",ws_callback:c,name:S.value.name,scan_list:[w.value[p.value].name]})},k=()=>{e.scanStatus=!1,e.isEnd=!1,e.error=0,e.warn=0,e.time=0,e.progress=0,e.progressConfig={vulscan:[],webscan:[],filescan:[],backup:[],webshell:[],index:[],webhorse:[],deadchain:[],database:[],ftps:[],backend:[]},e.statusTotal={},e.result={},e.progressStatus={},e.active={vulscan:!1,webscan:!1,filescan:!1,backup:!1,webshell:!1,index:!1,webhorse:!1,deadchain:!1,database:!1,ftps:!1,backend:!1}},B=async()=>{if(E.value.authType==="ltd"){T.value=!0;try{const c=await he({data:JSON.stringify({name:S.value.name})});if(!c.status){j.request(c);return}e.isEnd=e.time||!1,e.time=ue(c.data.time,"yyyy-MM-dd")}catch(c){}finally{T.value=!1}}};return te(()=>{B(),k()}),V({onRefresh:async()=>{B(),k()}}),(c,a)=>{const v=pe,y=re,r=le,L=_e,Z=ge,Q=ie,U=ce,X=ee,Y=ne("bt-loading");return F((n(),l("div",ke,[s(E).authType==="ltd"?(n(),l("div",Se,[t("div",Ee,[t("div",Te,[t("div",Ce,[s(e).scanStatus&&!s(e).isEnd?(n(),l("div",De,[a[0]||(a[0]=t("div",{class:"animate-spin absolute top-0 border-warning border-b-2 rounded-full h-full w-full"},null,-1)),g(v,{icon:"scanning-danger",size:60,color:"var(--el-color-warning)",class:"m-auto"})])):(n(),l("div",Me,[s(e).warn||s(e).error?(n(),x(v,{key:0,icon:"scanning-danger",size:70,color:"var(--el-color-danger)"})):(n(),x(v,{key:1,icon:"scanning-"+(s(e).isEnd?"success":"danger"),size:72,color:s(e).isEnd?"var(--el-color-primary)":"var(--el-color-warning)"},null,8,["icon","color"]))]))])]),t("div",Le,[t("div",Ie,[s(e).isEnd?(n(),l(f,{key:1},[a[3]||(a[3]=u(" 检测完成 ",-1)),s(e).error>0||s(e).warn>0?(n(),l(f,{key:0},[a[2]||(a[2]=u(" ,共发现 ",-1)),s(e).error>0?(n(),l(f,{key:0},[t("span",Ne,d(s(e).error),1),a[1]||(a[1]=u(" 项风险 ",-1))],64)):m("",!0)],64)):m("",!0)],64)):(n(),l(f,{key:0},[u(d(s(R)),1)],64))]),t("div",ze,d(s(G)),1)]),t("div",He,[g(y,{class:z({"warning-hover":s(e).scanStatus&&!s(e).isEnd}),type:s(e).scanStatus&&!s(e).isEnd?"warning":"primary",onClick:K,plain:!!(s(e).scanStatus&&!s(e).isEnd)},{default:b(()=>[u(d(s(e).scanStatus&&!s(e).isEnd?"取消扫描":s(e).isEnd?"重新检测":"立即检测"),1)]),_:1},8,["class","type","plain"]),s(e).isEnd?(n(),x(y,{key:0,type:"default",onClick:s(we)},{default:b(()=>[...a[4]||(a[4]=[u(" 立即修复 ",-1)])]),_:1},8,["onClick"])):m("",!0)])]),g(r,{class:"!mt-0 !mb-20px !bg-base"}),t("div",Be,[!s(e).scanStatus&&!s(e).isEnd?(n(),l("div",Pe,[a[5]||(a[5]=t("div",{class:"font-bold text-medium text-secondary mb-[2rem]"},"支持网站以下安全扫描项:",-1)),t("div",Fe,[(n(!0),l(f,null,H(s(w),(i,I)=>(n(),l("div",{key:I,class:"flex flex-col inline-block items-center mb-[20px]"},[g(L,{class:"w-[4rem] inline-block mb-8px opacity-90",src:"/scan/scanning-"+i.name+"-ico.svg"},null,8,["src"]),u(" "+d(i.title),1)]))),128))])])):m("",!0),s(e).scanStatus||s(e).isEnd?(n(!0),l(f,{key:1},H(s(w),(i,I)=>(n(),l("div",{key:I,class:z([i.name+"_item "+(s(e).active[i.name]?"active":""),"progress_item"])},[t("div",{class:"progress_item_header",onClick:_=>A(i.name)},[t("div",je,[t("span",null,d(i.title),1)]),t("div",qe,[s(e).statusTotal[i.name]?(n(),l("span",Je," 发现"+d(s(e).statusTotal[i.name])+"项危险 ",1)):m("",!0),s(e).scanStatus&&s(D)==i.name?(n(),l("span",Oe," 正在扫描... ")):m("",!0),!s(e).scanStatus&&!s(e).statusTotal[i.name]?(n(),l("span",Re," 无风险项 ")):m("",!0),s(e).scanStatus&&s(D)!=i.name&&!s(e).statusTotal[i.name]?(n(),l("span",Ge," 等待扫描 ")):m("",!0)]),t("div",We,[t("span",Ae,d(s(e).active[i.name]?"收起":"展开"),1),t("i",{class:z(s(e).active[i.name]?"svgtofont-el-arrow-up":"svgtofont-el-arrow-down")},null,2)])],8,Ve),F(t("div",Ke,[g(U,{accordion:""},{default:b(()=>[(n(!0),l(f,null,H(s(e).progressConfig[i.name],(_,$)=>(n(),x(Q,{key:$},{title:b(()=>[t("div",Ze,[t("div",Qe,[t("span",{class:"text-small h-[2.2rem] flex items-center px-[8px] rounded-small mr-[1rem]",style:ae({color:s(M)[_.dangerous||0].color,backgroundColor:s(M)[_.dangerous||0].bg})},d(s(M)[_.dangerous||0].text),5),t("span",{innerHTML:_.name,class:"w-[46rem] truncate"},null,8,Ue)]),g(Z,{class:"mb-2px mr-4px",onClick:O},{default:b(()=>[...a[6]||(a[6]=[u(" 详情 ",-1)])]),_:1})])]),default:b(()=>[t("div",Xe,[t("div",Ye,[a[7]||(a[7]=t("span",{class:"w-[6rem] flex-shrink-0 inline-block"}," 详情: ",-1)),t("span",{class:"leading-[1.6rem]",innerHTML:_.name},null,8,$e)]),g(r,{class:"!my-8px"}),t("div",es,[a[8]||(a[8]=t("span",{class:"w-[6rem] flex-shrink-0 inline-block"}," 修复方案: ",-1)),t("span",{innerHTML:_.repair},null,8,ss)])])]),_:2},1024))),128))]),_:2},1024)],512),[[oe,s(e).active[i.name]]])],2))),128)):m("",!0)])])):(n(),x(X,{key:1,class:"h-full max-h-[62.5rem] overflow-auto",data:s(q)},null,8,["data"]))])),[[Y,s(T)]])}}}),ps=be(ts,[["__scopeId","data-v-17754910"]]);export{ps as default};