diff --git a/plugins/op_waf/index.py b/plugins/op_waf/index.py index d832f79f9..95ec5f48b 100755 --- a/plugins/op_waf/index.py +++ b/plugins/op_waf/index.py @@ -305,6 +305,49 @@ def getSiteRule(): return public.returnJson(True, 'ok!', cjson) +def addSiteRule(): + args = getArgs() + data = checkArgs(args, ['siteName', 'ruleName', 'ruleValue']) + if not data[0]: + return data[1] + + siteName = args['siteName'] + siteRule = args['ruleName'] + ruleValue = args['ruleValue'] + + path = getJsonPath('site') + content = public.readFile(path) + content = json.loads(content) + + content[siteName][siteRule].append(ruleValue) + + cjson = public.getJson(content) + public.writeFile(path, cjson) + return public.returnJson(True, '设置成功!') + + +def removeSiteRule(): + args = getArgs() + data = checkArgs(args, ['siteName', 'ruleName', 'index']) + if not data[0]: + return data[1] + + siteName = args['siteName'] + siteRule = args['ruleName'] + index = args['index'] + + path = getJsonPath('site') + content = public.readFile(path) + content = json.loads(content) + + ruleValue = content[siteName][siteRule][int(index)] + content[siteName][siteRule].remove(ruleValue) + + cjson = public.getJson(content) + public.writeFile(path, cjson) + return public.returnJson(True, '设置成功!') + + def setObjStatus(): args = getArgs() data = checkArgs(args, ['obj', 'statusCode']) @@ -348,7 +391,6 @@ def setSiteRetry(): def saveScanRule(): - args = getArgs() data = checkArgs(args, ['header', 'cookie', 'args']) if not data[0]: @@ -554,6 +596,10 @@ if __name__ == "__main__": print getRule() elif func == 'get_site_rule': print getSiteRule() + elif func == 'add_site_rule': + print addSiteRule() + elif func == 'remove_site_rule': + print removeSiteRule() elif func == 'set_obj_status': print setObjStatus() elif func == 'set_obj_open': diff --git a/plugins/op_waf/js/op_waf.js b/plugins/op_waf/js/op_waf.js index 459f3498b..38b547bef 100755 --- a/plugins/op_waf/js/op_waf.js +++ b/plugins/op_waf/js/op_waf.js @@ -1013,6 +1013,78 @@ function html_decode(value) { return $('
').text(value).html(); } +//添加站点过滤规则 +function addSiteRule(siteName, ruleName) { + var pdata = { + ruleValue: $("input[name='site_rule_value']").val(), + siteName: siteName, + ruleName: ruleName + } + + if (pdata['ruleValue'] == '') { + layer.msg('过滤规则不能为空'); + $("input[name='site_rule_value']").focus(); + return; + } + + owPost('add_site_rule', pdata, function(data){ + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + if (rdata.status) { + setTimeout(function(){ + siteRuleAdmin(siteName, ruleName, 1); + },1000); + } + }); +} + +//删除站点过滤规则 +function removeSiteRule(siteName, ruleName, index) { + var pdata = { + index: index, + siteName: siteName, + ruleName: ruleName + } + + owPost('remove_site_rule', pdata, function(data){ + console.log(data); + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + if (rdata.status) { + if (ruleName == 'url_tell') { + site_url_tell(siteName, 1); + return; + } + + if (ruleName == 'url_rule') { + site_url_rule(siteName, 1); + return; + } + + setTimeout(function(){ + siteRuleAdmin(siteName, ruleName, 1); + },1000); + } + }); + + // var loadT = layer.msg('正在删除,请稍候..', { icon: 16, time: 0 }); + // $.post('/plugin?action=a&name=btwaf&s=remove_site_rule', pdata, function (rdata) { + // layer.close(loadT); + // layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + // if (rdata.status) { + // if (ruleName == 'url_tell') { + // site_url_tell(siteName, 1); + // return; + // } + + // if (ruleName == 'url_rule') { + // site_url_rule(siteName, 1); + // return; + // } + // site_rule_admin(siteName, ruleName, 1); + // } + // }); +} //网站规则管理 function siteRuleAdmin(siteName, ruleName, type) { @@ -1051,7 +1123,7 @@ function siteRuleAdmin(siteName, ruleName, type) { content: '
\
\ \ - \
\ + \
\
\
\ \ @@ -1079,7 +1151,7 @@ function siteRuleAdmin(siteName, ruleName, type) { for (var i = 0; i < rdata.length; i++) { tbody += '\ \ - \ + \ ' } $("#site_rule_admin_con").html(tbody);
'+ rdata[i] + '删除删除