update
This commit is contained in:
parent
f367f10d02
commit
c15b97f2ba
|
|
@ -371,8 +371,8 @@ def removeIpWhite():
|
|||
content = public.readFile(path)
|
||||
content = json.loads(content)
|
||||
|
||||
v = content[int(index)]
|
||||
content.remove(v)
|
||||
k = content[int(index)]
|
||||
content.remove(k)
|
||||
|
||||
cjson = public.getJson(content)
|
||||
public.writeFile(path, cjson)
|
||||
|
|
@ -448,15 +448,9 @@ def saveScanRule():
|
|||
if not data[0]:
|
||||
return data[1]
|
||||
|
||||
conf = getRuleJsonPath('scan_black')
|
||||
content = public.readFile(conf)
|
||||
cobj = json.loads(content)
|
||||
|
||||
cobj['retry'] = args
|
||||
|
||||
cjson = public.getJson(cobj)
|
||||
public.writeFile(conf, cjson)
|
||||
|
||||
path = getRuleJsonPath('scan_black')
|
||||
cjson = public.getJson(args)
|
||||
public.writeFile(path, cjson)
|
||||
return public.returnJson(True, '设置成功!', [])
|
||||
|
||||
|
||||
|
|
@ -550,6 +544,25 @@ def removeSiteCdnHeader():
|
|||
public.writeFile(path, cjson)
|
||||
return public.returnJson(True, '删除成功!')
|
||||
|
||||
def outputData():
|
||||
args = getArgs()
|
||||
data = checkArgs(args, ['s_Name'])
|
||||
if not data[0]:
|
||||
return data[1]
|
||||
|
||||
path = getRuleJsonPath(args['s_Name'])
|
||||
content = public.readFile(path)
|
||||
return public.returnJson(True, 'ok', content)
|
||||
|
||||
def importData():
|
||||
args = getArgs()
|
||||
data = checkArgs(args, ['s_Name', 'pdata'])
|
||||
if not data[0]:
|
||||
return data[1]
|
||||
|
||||
path = getRuleJsonPath(args['s_Name'])
|
||||
public.writeFile(path, args['pdata'])
|
||||
return public.returnJson(True, '设置成功!')
|
||||
|
||||
def getLogsList():
|
||||
args = getArgs()
|
||||
|
|
@ -709,6 +722,10 @@ if __name__ == "__main__":
|
|||
print getLogsList()
|
||||
elif func == 'get_safe_logs':
|
||||
print getSafeLogs()
|
||||
elif func == 'output_data':
|
||||
print outputData()
|
||||
elif func == 'import_data':
|
||||
print importData()
|
||||
elif func == 'waf_srceen':
|
||||
print getWafSrceen()
|
||||
elif func == 'waf_conf':
|
||||
|
|
|
|||
|
|
@ -496,6 +496,87 @@ function removeIpWhite(index) {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
function funDownload(content, filename) {
|
||||
// 创建隐藏的可下载链接
|
||||
var eleLink = document.createElement('a');
|
||||
eleLink.download = filename;
|
||||
eleLink.style.display = 'none';
|
||||
// 字符内容转变成blob地址
|
||||
var blob = new Blob([content]);
|
||||
eleLink.href = URL.createObjectURL(blob);
|
||||
// 触发点击
|
||||
document.body.appendChild(eleLink);
|
||||
eleLink.click();
|
||||
// 然后移除
|
||||
document.body.removeChild(eleLink);
|
||||
}
|
||||
|
||||
function outputLayer(rdata, name, type) {
|
||||
window.Load_layer = layer.open({
|
||||
type: 1,
|
||||
title: type ? "导出数据" : "导入数据",
|
||||
area: ['400px', '370px'],
|
||||
shadeClose: false,
|
||||
content: '<div class="soft-man-con" style="padding:10px;">' +
|
||||
'<div class="line">' +
|
||||
'<div class="ml0" style="position:relative;" id="focus_tips">' +
|
||||
'<textarea class="bt-input-text mr20 config" name="config" style="width: 300px; height: 250px; line-height: 22px; display: none;" id="lead_data">' + (rdata != '' ? JSON.stringify(rdata) : '') + '</textarea>' +
|
||||
'<div class="placeholder c9" style="top: 15px; left: 15px; display:' + (rdata == "" ? "block;" : "none;") + '">导入格式如下:' +
|
||||
(name == 'ip_white' || name == 'ip_black' ? "[[[127, 0, 0, 1],[127, 0, 0, 255]]]" : "[\"^/test\",\"^/web\"]") +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="line "><div class="ml0">' +
|
||||
(type ? '<button name="btn_save_to" class="btn btn-success btn-sm mr5 btn_save_to" >导出配置</button>' : '<button name="btn_save" class="btn btn-success btn-sm mr5 btn_save">保存</button>') +
|
||||
'</div></div>' +
|
||||
'</div>'
|
||||
});
|
||||
var lead_error = CodeMirror.fromTextArea(document.getElementById("lead_data"), {
|
||||
mode: 'html',
|
||||
matchBrackets: true,
|
||||
matchtags: true,
|
||||
autoMatchParens: true
|
||||
});
|
||||
setTimeout(function () {
|
||||
$('.btn_save').on('click', function () {
|
||||
importData(name, lead_error.getValue());
|
||||
})
|
||||
$('.btn_save_to').on('click', function () {
|
||||
funDownload(lead_error.getValue(), name + '.json');
|
||||
});
|
||||
$('#focus_tips').on('click', function () {
|
||||
$('.placeholder').hide();
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
|
||||
|
||||
//导出数据
|
||||
function outputData(name, callback) {
|
||||
var loadT = layer.msg('正在导出数据..', { icon: 16, time: 0 });
|
||||
|
||||
owPost('output_data', { s_Name: name } , function(data){
|
||||
var tmp = $.parseJSON(data.data);
|
||||
var rdata = $.parseJSON(tmp.data);
|
||||
if (callback) callback(rdata,res);
|
||||
outputLayer(rdata, name, true);
|
||||
});
|
||||
}
|
||||
|
||||
//导入数据
|
||||
function importData(name, pdata, callback) {
|
||||
owPost('import_data', { s_Name: name, pdata: pdata } , function(data){
|
||||
var rdata = $.parseJSON(data.data);
|
||||
if (callback) callback();
|
||||
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
|
||||
});
|
||||
}
|
||||
|
||||
function fileInput(name) {
|
||||
outputLayer('', name, false);
|
||||
}
|
||||
|
||||
//IP白名单
|
||||
function ipWhite(type) {
|
||||
if (type == undefined) {
|
||||
|
|
@ -525,8 +606,8 @@ function ipWhite(type) {
|
|||
</div>\
|
||||
</div>\
|
||||
<div style="width:100%" class="mt5">\
|
||||
<button class="btn btn-success btn-sm va0 mr5 mt10" onclick="file_input(\'ip_white\')" >导入</button>\
|
||||
<button class="btn btn-success btn-sm va0 mt10" onclick="output_data(\'ip_white\')">导出</button>\
|
||||
<button class="btn btn-success btn-sm va0 mr5 mt10" onclick="fileInput(\'ip_white\')" >导入</button>\
|
||||
<button class="btn btn-success btn-sm va0 mt10" onclick="outputData(\'ip_white\')">导出</button>\
|
||||
</div>\
|
||||
<ul class="help-info-text c7 ptb10">\
|
||||
<li>所有规则对白名单中的IP段无效,包括IP黑名单和URL黑名单,IP白名单具备最高优先权</li>\
|
||||
|
|
@ -566,6 +647,136 @@ function ipWhite(type) {
|
|||
}
|
||||
|
||||
|
||||
// 获取IPV4黑名单
|
||||
function getIpv4Address(callback){
|
||||
getRuleByName('ip_black', function(data){
|
||||
var tmp = $.parseJSON(data.data);
|
||||
var rdata = $.parseJSON(tmp.data);
|
||||
callback(rdata);
|
||||
});
|
||||
}
|
||||
|
||||
// 获取IPV6黑名单
|
||||
function getIpv6Address(callback){
|
||||
getRuleByName('ipv6_black', function(data){
|
||||
var tmp = $.parseJSON(data.data);
|
||||
var rdata = $.parseJSON(tmp.data);
|
||||
callback(rdata);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 添加ipv6请求
|
||||
function AddIpv6Req(ip,callback){
|
||||
owPost('set_ipv6_back', {addr:ip}, function(data){
|
||||
console.log(data);
|
||||
// if(callback) callback(rdata);
|
||||
});
|
||||
}
|
||||
|
||||
//IP黑名单
|
||||
function ipBlack(type) {
|
||||
if (type == undefined) {
|
||||
create_l = layer.open({
|
||||
type: 1,
|
||||
title: "管理IP黑名单",
|
||||
area: ['500px', '500px'],
|
||||
closeBtn: 2,
|
||||
shadeClose: false,
|
||||
content: '<div class="tab_list"><div class="tab_block active">IPv4黑名单</div><div class="tab_block">IPv6黑名单</div></div>\
|
||||
<div class="pd15 ipv4_block">\
|
||||
<div style="border-bottom:#ccc 1px solid;margin-bottom:10px;padding-bottom:10px">\
|
||||
<input class="bt-input-text" name="start_ip" type="text" value="" style="width:150px;margin-right:15px;margin-left:5px" placeholder="起始IP地址">\
|
||||
<input class="bt-input-text mr5" name="end_ip" type="text" style="width:150px;margin-left:5px;margin-right:20px" placeholder="结束IP地址">\
|
||||
<button class="btn btn-success btn-sm va0 pull-right" onclick="add_ip_black();">添加</button>\</div>\
|
||||
<div class="divtable">\
|
||||
<div id="ipBlack" style="max-height:300px;overflow:auto;border:#ddd 1px solid">\
|
||||
<table class="table table-hover" style="border:none">\
|
||||
<thead>\
|
||||
<tr>\
|
||||
<th>超始IP</th>\
|
||||
<th>结束IP</th>\
|
||||
<th style="text-align: right;">操作</th>\
|
||||
</tr>\
|
||||
</thead>\
|
||||
<tbody id="ip_black_con" class="gztr"></tbody>\
|
||||
</table>\
|
||||
</div>\
|
||||
<div style="width:100%" class="mt10">\
|
||||
<button class="btn btn-success btn-sm va0 mr5 mt10" onclick="fileInput(\'ip_black\')" >导入</button>\
|
||||
<button class="btn btn-success btn-sm va0 mt10" onclick="outputData(\'ip_black\')">导出</button>\
|
||||
</div>\
|
||||
</div>\
|
||||
<ul class="help-info-text c7 ptb10">\
|
||||
<li>黑名单中的IP段将被禁止访问,IP白名单中已存在的除外</li>\
|
||||
</ul>\
|
||||
</div>\
|
||||
<div class="pd15 ipv6_block">\
|
||||
<div style="border-bottom:#ccc 1px solid;margin-bottom:10px;padding-bottom:10px">\
|
||||
<input class="bt-input-text" name="ipv6_address" type="text" style="width:380px;margin-right:15px;margin-left:5px" placeholder="ipv6地址">\
|
||||
<button class="btn btn-success btn-sm va0 btn_add_ipv6" style="margin-left:15px;">添加</button>\
|
||||
</div>\
|
||||
<div class="divtable">\
|
||||
<div id="ipv6_black" style="max-height:300px;overflow:auto;border:#ddd 1px solid">\
|
||||
<table class="table table-hover" style="border:none">\
|
||||
<thead><tr><th>IPv6地址</th><th style="text-align: right;">操作</th></tr></thead>\
|
||||
<tbody id="ipv6_black_con" class="gztr"></tbody>\
|
||||
</table>\
|
||||
</div>\
|
||||
</div>\
|
||||
<ul class="help-info-text c7 ptb10">\
|
||||
<li>黑名单中的IP段将被禁止访问,IP白名单中已存在的除外</li>\
|
||||
</ul>\
|
||||
</div>',
|
||||
success:function(index,layero){
|
||||
$('.tab_list .tab_block').click(function(){
|
||||
$(this).addClass('active').siblings().removeClass('active');
|
||||
if($(this).index() === 0){
|
||||
$('.ipv4_block').show().next().hide();
|
||||
getIpv4Address(function(rdata){
|
||||
var tbody = ''
|
||||
for (var i = 0; i < rdata.length; i++) {
|
||||
tbody += '<tr>\
|
||||
<td>'+ rdata[i][0].join('.') + '</td>\
|
||||
<td>'+ rdata[i][1].join('.') + '</td>\
|
||||
<td class="text-right"><a class="btlink" onclick="remove_ip_black('+ i + ')">删除</a></td>\
|
||||
</tr>'
|
||||
}
|
||||
$("#ip_black_con").html(tbody);
|
||||
});
|
||||
}else{
|
||||
$('.ipv4_block').hide().next().show();
|
||||
getIpv6Address(function(res){
|
||||
// console.log(res);
|
||||
var tbody = '',rdata = res;
|
||||
for (var i = 0; i < rdata.length; i++) {
|
||||
tbody += '<tr>\
|
||||
<td>'+ rdata[i] + '</td>\
|
||||
<td class="text-right"><a class="btlink" onclick="remove_ipv6_black(\''+ rdata[i] + '\')">删除</a></td>\
|
||||
</tr>'
|
||||
}
|
||||
$("#ipv6_black_con").html(tbody);
|
||||
});
|
||||
}
|
||||
});
|
||||
$('.btn_add_ipv6').click(function(){
|
||||
var ipv6 = $('[name="ipv6_address"]').val();
|
||||
add_ipv6_req(ipv6,function(res){
|
||||
layer.close(loadT);
|
||||
layer.msg(res.msg,{icon:res.status?1:2});
|
||||
if(res.status){
|
||||
$('[name="ipv6_address"]').val('');
|
||||
$('.tab_list .tab_block:eq(1)').click();
|
||||
}
|
||||
});
|
||||
});
|
||||
$('.tab_list .tab_block:eq(0)').click();
|
||||
}
|
||||
});
|
||||
tableFixed("ipBlack");
|
||||
}
|
||||
}
|
||||
|
||||
function wafScreen(){
|
||||
|
||||
owPost('waf_srceen', {}, function(data){
|
||||
|
|
@ -1162,7 +1373,6 @@ function siteWafConfig(siteName, type) {
|
|||
owPost('get_site_config_byname', { siteName: siteName }, function(data){
|
||||
var tmp = $.parseJSON(data.data);
|
||||
var rdata = tmp.data;
|
||||
console.log(rdata);
|
||||
nginx_config = rdata;
|
||||
var con = '<div class="pd15">\
|
||||
<div class="lib-con-title">\
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
Loading…
Reference in New Issue