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/malware.js
import{B as pe}from"./index130.js?v=1777008528";import{c as ve,w as E,k as H,W as fe,d3 as be,d4 as xe,c7 as we,K as ge,f as ye,cZ as ke}from"./utils-lib.js?v=1777008528";import{c as he,t as Ce,aI as Ve,r,g as Se,e as a,D as Te,w as De,I as Ee,j as w,k as g,q as t,p as l,F as I,s as d,B as Me,M as qe,Q as y,v as u,x as k,J as Le,z as Re,ap as Be,G as Fe,f as Ne,bi as $e}from"./base-lib.js?v=1777008528";import{_ as He}from"./index118.js?v=1777008528";import{H as Ie}from"./index387.js?v=1777008528";import{e as Oe,g as Ue,aM as ze,aN as O,aO as We,a6 as je}from"./index3.js?v=1777008528";import{S as Ke}from"./useStore2.js?v=1777008528";import{a as Je}from"./useMethod7.js?v=1777008528";import"./ace.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";import"./site.js?v=1777008528";import"./firewall.js?v=1777008528";import"./useStore8.js?v=1777008528";const Pe={class:"text-right text-secondary mb-2"},Ae={class:"flex mb-[1.6rem] p-[1.6rem] border-[0.1rem] border-lighter rounded-base"},Ge={class:"text-small text-secondary mb-[1.6rem]"},Qe={class:"flex justify-between items-center"},Ye={class:"flex items-center"},Ze={class:"flex items-center"},Xe={key:1,class:"p-[1rem]"},et={class:"flex justify-between items-center px-4"},tt={class:"text-extraLarge"},st=["innerHTML"],lt={class:"text-medium mt-[1.2rem]"},at={class:"text-base"},nt={class:"flex justify-center"},ot={class:"p-[2rem]"},it={class:"flex items-center mb-[1.6rem]"},rt={class:"flex-1 truncate"},dt={class:"flex items-center mb-[1.6rem]"},ct={class:"flex-1 truncate"},mt={class:"flex items-center mb-[1.6rem]"},ut={class:"flex-1 truncate"},_t={class:"flex items-center mb-[1.6rem]"},pt={class:"flex-1 truncate"},vt={class:"flex items-center mb-[1.6rem]"},ft={class:"flex-1 truncate"},bt={class:"flex items-center mb-[1.6rem]"},xt={class:"flex-1 truncate"},wt={class:"flex items-center"},gt={class:"flex-1"},yt={class:"p-20px"},kt=he({__name:"malware",setup(ht){const{payment:U}=ve(),{authType:z}=Ce(U.value),M=Ie(),{repairTypeActive:W,tootipTotal:q,malwareData:h}=Ve(M),{getScanTotal:j,openPayView:K,convertDataStructure:L,malwareAdvanced:J,setMalwareConfig:P}=M,C=ye(),{getFileEvent:A,saveFileEvent:G}=Ke(),R=r(),m=r([{title:"总检测文件数",value:0,style:"color: var(--el-color-text-primary)"},{title:"高危",value:0,style:"color: var(--el-color-danger);",id:2},{title:"中危",value:0,style:"color: var(--el-color-warning)",id:1},{title:"低危",value:0,style:"color: var(--el-color-warning-light-3)",id:0}]),Q=[{label:"不限时间",value:""},{label:"最近1天",value:1},{label:"最近7天",value:7},{label:"最近30天",value:30}],p=r("");r(!1);const v=r(!1),V=r(!1),c=r({filename:"",filepath:"",threat_type:"",md5:"",risk_level:0,time:"",quarantined:!1,rule:"",processed:0,risk_level_desc:""}),D=r(""),b=r(""),S=r(!1),x=r({total:0,loading:!1,data:[]}),Y=async s=>{c.value=s,V.value=!0},Z=Se(()=>{const s=q.value.malware;return s?'<span class="text-danger">'.concat(s,"</span>个高危文件待处理!总扫描文件数量").concat(m.value[0].value,"个"):"已完成".concat(m.value[0].value,"个文件深度扫描,未发现任何恶意文件或异常行为")}),X=async s=>{await E({title:"忽略恶意文件",content:"是否忽略该文件?",onConfirm:async()=>{const{filepath:e,md5:i,filename:o,risk_level:_}=s,f=await H({loading:"正在保存配置,请稍后...",request:ze({filepath:e,md5:i,filename:o,risk:_})});f.status?C.success("忽略成功"):C.error(f.msg),await T()}})},ee=async s=>{await E({title:"处理恶意文件",content:"是否要删除关联的源文件?",onConfirm:async()=>{await H({loading:"正在保存配置,请稍后...",request:O({file_list:JSON.stringify([{filepath:s.filepath,md5:s.md5}]),action_type:"delete"}),message:!0}),await T()}})},te=[Oe({key:"keyid"}),{label:"文件名",prop:"filename"},{label:"威胁标签",prop:"threat_type",width:86,render:s=>a(Te,{type:"info",effect:"plain"},{default:()=>["网站后门"]})},{label:"MD5",prop:"md5",width:140,render:s=>a("div",{class:"truncate w-[15rem]",title:s.md5},[s.md5])},{label:"等级",prop:"risk_level_desc",width:50,render:s=>{var i;let e=(i=m.value.find(o=>o.id===s.risk_level))==null?void 0:i.style;return a("span",{style:e},[s.risk_level_desc])}},{label:"检测时间",prop:"time",width:140},Ue([{onClick:X,title:"忽略"},{onClick:ee,title:"处理"},{onClick:Y,title:"详情"}])],se=async s=>{p.value=s,await B()},le=async s=>{let e=s?"开启":"关闭",i=s?"将全天候检测系统是否存在恶意文件":"将不再检测系统是否存在恶意文件";await E({title:"".concat(e,"动态查杀"),content:"".concat(e,"后,").concat(i,",是否继续?")}),v.value=s,await P({dynamic_detection:v.value})},B=async()=>{x.value.loading=!0;const s=p.value!==""?{day:Number(p.value)}:void 0,{data:e}=await We(s);x.value.loading=!1,x.value.data=e.detected.map((_,f)=>({..._,keyid:f})),D.value=e.last_scan_time;const{total_scanned_files:i,risk_stats:o}=e;m.value[0].value=i,m.value[1].value=o[2],m.value[2].value=o[1],m.value[3].value=o[0]},ae=async()=>{const{data:s}=await je(),e=s.data;v.value=e.dynamic_detection,h.value.autoIntercept=e.quarantine,h.value.ossConfig={status:e.scan_oss,isHasMounts:e.has_oss_mounts},h.value.exclude_dirs=L(e.exclude_dirs),h.value.monitor_dirs=L(e.monitor_dirs)},ne=async()=>{const s=await A({path:c.value.filepath});if(s.status)b.value=s.data.data||s.msg,S.value=!0;else return C.error(s.data.msg),!1},oe=async()=>{const s=await G({path:c.value.filepath,data:b.value,encoding:"utf-8"});C.request(s)},ie=[{label:"处理恶意文件",value:"delete",event:async(s,e)=>{await Je(s,e,async o=>{const _={filepath:o.filepath,md5:o.md5};return await O({file_list:JSON.stringify([_]),action_type:"delete"})},{label:"文件名",prop:"filename"},T)}}],T=async(s=!1)=>{await ae(),await B(),s||await j()};return De(W,s=>{s==="malware"&&T(!0)}),(s,e)=>{const i=fe,o=Re,_=Be,f=be,re=xe,de=He,F=Fe,ce=Ne,me=we,ue=$e,N=ge,_e=pe,$=Ee("bt-loading");return w(),g("div",null,[e[20]||(e[20]=t("div",{class:"text-large mb-6"},"恶意文件检测",-1)),l(z)==="ltd"?(w(),g(I,{key:0},[t("div",Pe,"最近一次扫描时间:"+d(l(D)),1),t("div",Ae,[(w(!0),g(I,null,Me(l(m),n=>(w(),g("div",{class:"flex-1",key:n.title},[t("div",Ge,d(n.title),1),t("div",{class:"text-subtitleLarge",style:qe(n.style)},d(n.value),5)]))),128))]),t("div",Qe,[a(i,{modelValue:l(p),"onUpdate:modelValue":e[0]||(e[0]=n=>y(p)?p.value=n:null),options:Q,onChange:se,class:"mr-[1rem] !w-[12rem]","empty-values":[null,void 0]},null,8,["modelValue"]),t("div",Ye,[a(o,{size:"small",onClick:l(J)},{default:u(()=>[...e[5]||(e[5]=[k("高级设置",-1)])]),_:1},8,["onClick"]),e[7]||(e[7]=t("span",{class:"text-tertiary mx-[1.2rem]"},"|",-1)),t("div",Ze,[e[6]||(e[6]=t("span",{class:"mr-[.8rem]"},"动态查杀开关",-1)),a(_,{modelValue:l(v),"onUpdate:modelValue":e[1]||(e[1]=n=>y(v)?v.value=n:null),size:"small",onChange:le},null,8,["modelValue"])])])]),a(de,null,{content:u(()=>[Le(a(f,{ref_key:"malwareTable",ref:R,column:te,data:l(x).data,"max-height":"406",description:"文件列表为空"},null,8,["data"]),[[$,l(x).loading],[$,"正在获取恶意文件列表,请稍后...","title"]])]),"footer-left":u(()=>[a(re,{"table-ref":l(R),options:ie},null,8,["table-ref"])]),_:1}),e[8]||(e[8]=t("ul",{class:"ml-6 mt-6 list-disc leading-10"},[t("li",{class:"text-secondary"},"恶意文件检测每6小时自动运行,24小时不间断保护您的系统安全,无需任何手动操作!")],-1))],64)):(w(),g("div",Xe,[t("div",et,[t("div",tt,[t("span",{class:"font-bold",innerHTML:l(Z)},null,8,st),t("p",lt,"上一次扫描时间:"+d(l(D)),1)]),a(o,{type:"primary",onClick:l(K),class:"h-[4rem] w-[10rem]",size:"large"},{default:u(()=>[t("span",at,d(l(q).malware>0?"立即处理":"立即开启"),1)]),_:1},8,["onClick"])]),a(F),t("div",nt,[a(ce,{class:"w-[63rem] mr-[2rem]",fit:"scale-down",src:"https://www.bt.cn/Public/new/plugin/introduce/home/malware.png"}),e[9]||(e[9]=t("div",{class:"max-w-[22rem]"},[t("span",{class:"text-large font-bold"},"恶意文件检测工具介绍"),t("ul",{class:"block leading-[2.6rem] mx-[2rem] list-square mt-[2rem]"},[t("li",null,[k("支持检测21种恶意文件类型: "),t("br"),k("反弹Shell后门、DDoS木马、下载器木马、 黑客工具、高危程序、被污染的基础软件、 恶意脚本、恶意程序、挖矿程序、 代理工具、勒索病毒、高危软件、 Rootkit、窃密工具、恶意扫描器、 可疑程序、感染型病毒、网站后门、 蠕虫病毒、广告程序、破解程序")])])],-1))])])),a(N,{modelValue:l(V),"onUpdate:modelValue":e[2]||(e[2]=n=>y(V)?V.value=n:null),title:"[".concat(l(c).filename,"]详情"),area:54},{default:u(()=>[t("div",ot,[t("div",it,[e[10]||(e[10]=t("div",{class:"text-small text-black w-[10rem]"},"文件名称",-1)),t("div",rt,d(l(c).filename),1)]),t("div",dt,[e[11]||(e[11]=t("div",{class:"text-small text-black w-[10rem]"},"文件路径",-1)),t("div",ct,d(l(c).filepath),1)]),t("div",mt,[e[12]||(e[12]=t("div",{class:"text-small text-black w-[10rem]"},"MD5",-1)),t("div",ut,d(l(c).md5),1)]),t("div",_t,[e[13]||(e[13]=t("div",{class:"text-small text-black w-[10rem]"},"威胁标签",-1)),t("div",pt,d(l(c).threat_type),1)]),t("div",vt,[e[14]||(e[14]=t("div",{class:"text-small text-black w-[10rem]"},"是否已进行隔离",-1)),t("div",ft,d(l(c).quarantined?"是":"否"),1)]),t("div",bt,[e[16]||(e[16]=t("div",{class:"text-small text-black w-[10rem]"},"样本文件",-1)),t("div",xt,[a(me,{onClick:ne},{default:u(()=>[...e[15]||(e[15]=[k("查看",-1)])]),_:1})])]),e[19]||(e[19]=t("div",{class:"mb-[1rem] mt-[4rem] font-bold text-default text-base"},"事件说明",-1)),t("div",wt,[t("div",gt,[a(ue,{style:{width:"480px"},shadow:"always",class:"p-[1rem]"},{default:u(()=>[e[17]||(e[17]=k(" 发现了一个可疑文件,建议您先确认文件合法性并进行处理 ",-1)),a(F,{class:"!my-1.2rem"}),e[18]||(e[18]=t("div",{class:"flex flex-wrap"},[t("div",null,"处置建议:"),t("div",null,"如果您确认该文件不是自己部署的业务所需文件,请隔离该文件,或直接删除。如果您确定为误报,请先忽略该告警。")],-1))]),_:1})])])])]),_:1},8,["modelValue","title"]),a(N,{title:"在线编辑",showFooter:"",modelValue:l(S),"onUpdate:modelValue":e[4]||(e[4]=n=>y(S)?S.value=n:null),area:70,onConfirm:oe},{default:u(()=>[t("div",yt,[a(_e,{modelValue:l(b),"onUpdate:modelValue":e[3]||(e[3]=n=>y(b)?b.value=n:null),class:"!h-[40rem]"},null,8,["modelValue"])])]),_:1},8,["modelValue"])])}}}),It=ke(kt,[["__scopeId","data-v-515dc31b"]]);export{It as default};