mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-18 23:45:52 +08:00
up
This commit is contained in:
+58
-117
@@ -1030,7 +1030,7 @@ function webEdit(id,website,endTime,addtime){
|
||||
+" <p class='bgw' onclick=\"domainEdit(" + id + ",'" + website + "')\">"+lan.site.domain_man+"</p>"
|
||||
+" "+eMenu+""
|
||||
+"</div>"
|
||||
+"<div id='webedit-con' class='bt-w-con webedit-con pd15'></div>"
|
||||
+"<div id='webedit-con' class='bt-w-con webedit-con pd15' style='height: 565px;overflow: scroll;'></div>"
|
||||
+"</div>",
|
||||
|
||||
success:function(){
|
||||
@@ -1134,78 +1134,6 @@ function setSecurity(name,id){
|
||||
}
|
||||
|
||||
|
||||
//木马扫描
|
||||
function CheckSafe(id,act){
|
||||
if(act != undefined){
|
||||
var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/site?action=CheckSafe','id='+id,function(rdata){
|
||||
$(".btnStart").hide()
|
||||
setTimeout(function(){
|
||||
CheckSafe(id);
|
||||
},3000);
|
||||
GetTaskCount();
|
||||
layer.close(loadT)
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:5});
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$.post('/site?action=GetCheckSafe','id='+id,function(rdata){
|
||||
var done = "<button type='button' class='btn btn-success btn-sm btnStart mr5' onclick=\"CheckSafe("+id+",1)\">"+lan.site.start_scan+"</button>\
|
||||
<button type='button' class='btn btn-default btn-sm btnStart mr20' onclick=\"UpdateRulelist()\">"+lan.site.update_lib+"</button>\
|
||||
<a class='f14 mr20' style='color:green;'>"+lan.site.scanned+":"+rdata.count+"</a><a class='f14' style='color:red;'>"+lan.site.risk_quantity+":"+rdata.error+"</a>";
|
||||
|
||||
if(rdata['scan']) done = "<a class='f14 mr20' style='color:green;'>"+lan.site.scanned+":"+rdata.count+"</a><a class='f14' style='color:red;'>"+lan.site.risk_quantity+":"+rdata.error+"</a>";
|
||||
var echoHtml = "<div class='mtb15'>"
|
||||
+ done
|
||||
+"</div>"
|
||||
for(var i=0;i<rdata.phpini.length;i++){
|
||||
echoHtml += "<tr><td>"+lan.site.danger_fun+"</td><td>"+lan.site.danger+"</td><td>"+lan.site.danger_fun_no+":"+rdata.phpini[i].function+"<br>"+lan.site.file+":<a style='color: red;' href='javascript:;' onclick=\"OnlineEditFile(0,'/www/server/php/"+rdata.phpini[i].version+"/etc/php.ini')\">/www/server/php/"+rdata.phpini[i].version+"/etc/php.ini</a></td></tr>";
|
||||
}
|
||||
|
||||
if(!rdata.sshd){
|
||||
echoHtml += "<tr><td>"+lan.site.ssh_port+"</td><td>"+lan.site.high_risk+"</td><td>"+lan.site.sshd_tampering+"</td></tr>";
|
||||
}
|
||||
|
||||
if(!rdata.userini){
|
||||
echoHtml += "<tr><td>"+lan.site.xss_attack+"</td><td>"+lan.site.danger+"</td><td>"+lan.site.site_xss_attack+"</td></tr>";
|
||||
}
|
||||
|
||||
for(var i=0;i<rdata.data.length;i++){
|
||||
echoHtml += "<tr><td>"+rdata.data[i].msg+"</td><td>"+rdata.data[i].level+"</td><td>文件:<a style='color: red;' href='javascript:;' onclick=\"OnlineEditFile(0,'"+rdata.data[i].filename+"')\">"+rdata.data[i].filename+"</a><br>"+lan.site.mod_time+":"+rdata.data[i].etime+"<br>"+lan.site.code+":"+rdata.data[i].code+"</td></tr>";
|
||||
}
|
||||
|
||||
var body = "<div>"
|
||||
+"<div class='divtable mtb15'><table class='table table-hover' width='100%' style='margin-bottom:0'>"
|
||||
+"<thead><tr><th width='100px'>"+lan.site.behavior+"</th><th width='70px'>"+lan.site.risk+"</th><th>"+lan.site.details+"</th></tr></thead>"
|
||||
+"<tbody id='checkDomain'>" + echoHtml + "</tbody>"
|
||||
+"</table></div>"
|
||||
|
||||
$("#webedit-con").html(body);
|
||||
$(".btnStart").click(function(){
|
||||
fly('btnStart');
|
||||
});
|
||||
if(rdata['scan']){
|
||||
c = $("#site_"+id).attr('class');
|
||||
if(c != 'active') return;
|
||||
setTimeout(function(){
|
||||
CheckSafe(id);
|
||||
},1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function UpdateRulelist(){
|
||||
var loadT = layer.msg(lan.site.to_update,{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/site?action=UpdateRulelist','',function(rdata){
|
||||
layer.close(loadT)
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:5});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
//流量限制
|
||||
function limitNet(id){
|
||||
$.post('/site/get_limit_net','id='+id, function(rdata){
|
||||
@@ -1409,15 +1337,6 @@ function delDirBind(id,siteId){
|
||||
},'json');
|
||||
});
|
||||
}
|
||||
|
||||
//开启缓存
|
||||
function openCache(siteName){
|
||||
var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/site?action=ProxyCache',{siteName:siteName},function(rdata){
|
||||
layer.close(loadT);
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:2});
|
||||
});
|
||||
}
|
||||
|
||||
//301重定向
|
||||
function to301(siteName, type, obj){
|
||||
@@ -1890,37 +1809,37 @@ function setSSL(id,siteName){
|
||||
+ '<div class="tab-con" style="padding: 0px;"></div>';
|
||||
// <span class="sslclose" onclick="closeSSL(\''+siteName+'\')">关闭</span>\
|
||||
$("#webedit-con").html(sslHtml);
|
||||
opSSL('now',id,siteName);
|
||||
$(".tab-nav span").click(function(){
|
||||
$(this).addClass("on").siblings().removeClass("on");
|
||||
});
|
||||
var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/site/get_ssl','siteName='+siteName,function(rdata){
|
||||
layer.close(loadT);
|
||||
$("#toHttps").attr('checked',rdata.data.httpTohttps);
|
||||
switch(rdata.data.type){
|
||||
case 1:
|
||||
$(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
|
||||
setCookie('letssl',1);
|
||||
var lets = '<div class="myKeyCon ptb15"><div class="ssl-con-key pull-left mr20">密钥(KEY)<br><textarea id="key" class="bt-input-text" readonly="" style="background-color:#f6f6f6">'+rdata.data.key+'</textarea></div>'
|
||||
+ '<div class="ssl-con-key pull-left">证书(PEM格式)<br><textarea id="csr" class="bt-input-text" readonly="" style="background-color:#f6f6f6">'+rdata.data.csr+'</textarea></div>'
|
||||
+ '</div>'
|
||||
+ '<ul class="help-info-text c7 pull-left"><li>已为您自动生成Let\'s Encrypt免费证书;</li>\
|
||||
<li>如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。</li></ul>'
|
||||
$(".tab-con").html(lets);
|
||||
$(".help-info-text").after("<div class='line mtb15'><button class='btn btn-default btn-sm' onclick=\"ocSSL('close_ssl_conf','"+siteName+"')\" style='margin-left:10px'>关闭SSL</button></div>");
|
||||
break;
|
||||
case 0:
|
||||
case 3:
|
||||
$(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
|
||||
opSSL('other',id,siteName);
|
||||
break;
|
||||
case 2:
|
||||
$(".tab-nav span").eq(0).addClass("on").siblings().removeClass("on");
|
||||
opSSL('a',id,siteName);
|
||||
break;
|
||||
}
|
||||
},'json');
|
||||
opSSL('now',id,siteName);
|
||||
// var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
|
||||
// $.post('/site/get_ssl',{'siteName':siteName },function(rdata){
|
||||
// layer.close(loadT);
|
||||
// $("#toHttps").attr('checked',rdata.data.httpTohttps);
|
||||
// switch(rdata.data.type){
|
||||
// case 1:
|
||||
// $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
|
||||
// setCookie('letssl',1);
|
||||
// var lets = '<div class="myKeyCon ptb15"><div class="ssl-con-key pull-left mr20">密钥(KEY)<br><textarea id="key" class="bt-input-text" readonly="" style="background-color:#f6f6f6">'+rdata.data.key+'</textarea></div>'
|
||||
// + '<div class="ssl-con-key pull-left">证书(PEM格式)<br><textarea id="csr" class="bt-input-text" readonly="" style="background-color:#f6f6f6">'+rdata.data.csr+'</textarea></div>'
|
||||
// + '</div>'
|
||||
// + '<ul class="help-info-text c7 pull-left"><li>已为您自动生成Let\'s Encrypt免费证书;</li>\
|
||||
// <li>如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。</li></ul>'
|
||||
// $(".tab-con").html(lets);
|
||||
// $(".help-info-text").after("<div class='line mtb15'><button class='btn btn-default btn-sm' onclick=\"ocSSL('close_ssl_conf','"+siteName+"')\" style='margin-left:10px'>关闭SSL</button></div>");
|
||||
// break;
|
||||
// case 0:
|
||||
// case 3:
|
||||
// $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
|
||||
// opSSL('other',id,siteName);
|
||||
// break;
|
||||
// case 2:
|
||||
// $(".tab-nav span").eq(0).addClass("on").siblings().removeClass("on");
|
||||
// opSSL('a',id,siteName);
|
||||
// break;
|
||||
// }
|
||||
// },'json');
|
||||
}
|
||||
|
||||
|
||||
@@ -1979,9 +1898,15 @@ function httpToHttps(siteName){
|
||||
//SSL
|
||||
function opSSL(type, id, siteName, callback){
|
||||
|
||||
var now = '<div class="myKeyCon ptb15"><div class="ssl-con-key pull-left mr20">密钥(KEY)<br><textarea id="key" class="bt-input-text"></textarea></div>'
|
||||
+ '<div class="ssl-con-key pull-left">证书(PEM格式)<br><textarea id="csr" class="bt-input-text"></textarea></div>'
|
||||
+ '<div class="ssl-btn pull-left mtb15" style="width:100%"><button class="btn btn-success btn-sm" onclick="saveSSL(\''+siteName+'\')">保存</button></div></div>'
|
||||
var now = '<div class="myKeyCon ptb15">\
|
||||
<div class="ssl_state_info" style="display:none;"></div>\
|
||||
<div class="custom_certificate_info">\
|
||||
<div class="ssl-con-key pull-left mr20">密钥(KEY)<br><textarea id="key" class="bt-input-text"></textarea></div>\
|
||||
<div class="ssl-con-key pull-left">证书(PEM格式)<br><textarea id="csr" class="bt-input-text"></textarea></div>\
|
||||
</div>\
|
||||
<div class="ssl-btn pull-left mtb15" style="width:100%"><button class="btn btn-success btn-sm" onclick="saveSSL(\''+siteName+'\')">保存</button>\
|
||||
</div>\
|
||||
</div>'
|
||||
+ '<ul class="help-info-text c7 pull-left"><li>粘贴您的*.key以及*.pem内容,然后保存即可。</li>\
|
||||
<li>如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书</li><li>PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt</li>\
|
||||
<li>在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点</li></ul>';
|
||||
@@ -2147,22 +2072,38 @@ function opSSL(type, id, siteName, callback){
|
||||
$.post('site/get_ssl','siteName='+siteName,function(data){
|
||||
layer.close(loadT);
|
||||
var rdata = data['data'];
|
||||
if (rdata.type == 0){
|
||||
setCookie('letssl', 1);
|
||||
}
|
||||
|
||||
var issuer = rdata['cert_data']['issuer'].split(" ");
|
||||
var domains = rdata['cert_data']['dns'].join("、");
|
||||
|
||||
var cert_data = "<div class='state_info_flex'>\
|
||||
<div class='state_item'><span>证书品牌:</span><span class='ellipsis_text'>"+issuer[0]+"</span></div>\
|
||||
<div class='state_item'><span>到期时间:</span><span class='btlink'>剩余"+rdata['cert_data']['endtime']+"天到期</span></div>\
|
||||
</div>\
|
||||
<div class='state_info_flex'>\
|
||||
<div class='state_item'><span>认证域名:</span><span class='ellipsis_text'>"+domains+"</span></div>\
|
||||
<div class='state_item'><span>强制HTTPS:</span><span></span></div>\
|
||||
</div>";
|
||||
$(".ssl_state_info").html(cert_data);
|
||||
$(".ssl_state_info").css('display','block');
|
||||
|
||||
|
||||
console.log(rdata);
|
||||
if(rdata.status){
|
||||
|
||||
$(".ssl-btn").append("<button class='btn btn-default btn-sm' onclick=\"ocSSL('close_ssl_conf','"+siteName+"')\" style='margin-left:10px'>关闭SSL</button>");
|
||||
}
|
||||
if(rdata.key == false) rdata.key = '';
|
||||
if(rdata.csr == false) rdata.csr = '';
|
||||
$("#key").val(rdata.key);
|
||||
$("#csr").val(rdata.csr);
|
||||
|
||||
if (typeof (callback) != 'undefined'){
|
||||
callback(rdata);
|
||||
}
|
||||
},'json');
|
||||
break;
|
||||
case 'other':
|
||||
default:
|
||||
layer.msg("错误类型", {icon:5});
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1497,11 +1497,11 @@ html .menu .menu_exit:hover {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 0
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.soft-man .rowbg .col-lg-3 {
|
||||
cursor: default
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.soft-man .rowbg .col-lg-3:hover {
|
||||
@@ -1540,16 +1540,16 @@ html .menu .menu_exit:hover {
|
||||
}
|
||||
.bw-info ul li {
|
||||
height: 56px;
|
||||
line-height: 56px
|
||||
line-height: 56px;
|
||||
}
|
||||
|
||||
.bw-info ul li.bi-line {
|
||||
border-bottom: #ddd solid 1px
|
||||
border-bottom: #ddd solid 1px;
|
||||
}
|
||||
|
||||
.bw-info ul li span {
|
||||
display: block;
|
||||
margin-right: 15px
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.btn-zhm {
|
||||
@@ -1557,7 +1557,83 @@ html .menu .menu_exit:hover {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 42px;
|
||||
top: 0
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.ellipsis_text {
|
||||
width: 220px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ssl_state_info{
|
||||
padding: 15px 30px;
|
||||
background: #f5faf2;
|
||||
margin-top: 5px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #EAF1F2;
|
||||
font-size: 12px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ssl_state_info .state_item{
|
||||
width: 49%;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.ssl_state_info .state_item span{
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
|
||||
.ssl_state_info .state_item span:nth-child(1){
|
||||
font-weight: bold;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.ssl_state_info .state_item .switch{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
.ssl_state_info .state_item .switch-btn{
|
||||
margin-bottom: 0;
|
||||
height: 1.9rem;
|
||||
width: 3.2rem;
|
||||
position: relative;
|
||||
top;
|
||||
}
|
||||
|
||||
.custom_certificate_info{
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.custom_certificate_info .state_item{
|
||||
width: 48%;
|
||||
height: 50px;
|
||||
display: inline-block;
|
||||
margin-right: 4%;
|
||||
}
|
||||
.custom_certificate_info .state_item:nth-child(2){
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.custom_certificate_info .state_item span{
|
||||
width:100%;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.custom_certificate_info .state_item textarea{
|
||||
width: 100%;
|
||||
height: 250px;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.line {
|
||||
|
||||
Reference in New Issue
Block a user