From 2e70aaf35ef13639cf4b04cea7e28daed65e3681 Mon Sep 17 00:00:00 2001 From: Mr Chen Date: Mon, 6 May 2019 10:41:51 +0800 Subject: [PATCH] update --- plugins/op_waf/index.py | 50 ++++++++++++++++++++++++++++++++++ plugins/op_waf/js/op_waf.js | 38 ++++++++++++++++++++++++-- plugins/op_waf/waf/config.json | 2 +- 3 files changed, 87 insertions(+), 3 deletions(-) diff --git a/plugins/op_waf/index.py b/plugins/op_waf/index.py index 2bf09a01c..e3ef7135e 100755 --- a/plugins/op_waf/index.py +++ b/plugins/op_waf/index.py @@ -313,6 +313,52 @@ def addRule(): return public.returnJson(True, '设置成功!', content) +def removeRule(): + args = getArgs() + data = checkArgs(args, ['ruleName', 'index']) + if not data[0]: + return data[1] + + index = int(args['index']) + ruleName = args['ruleName'] + + fpath = getRuleJsonPath(ruleName) + content = public.readFile(fpath) + content = json.loads(content) + + k = content[index] + content.remove(k) + + cjson = public.getJson(content) + public.writeFile(fpath, cjson) + + return public.returnJson(True, '设置成功!', content) + +def setRuleState(): + args = getArgs() + data = checkArgs(args, ['ruleName', 'index']) + if not data[0]: + return data[1] + + index = int(args['index']) + ruleName = args['ruleName'] + + fpath = getRuleJsonPath(ruleName) + content = public.readFile(fpath) + content = json.loads(content) + + b = content[index][0] + if b == 1: + content[index][0] = 0 + else: + content[index][0] = 1 + + cjson = public.getJson(content) + public.writeFile(fpath, cjson) + + return public.returnJson(True, '设置成功!', content) + + def modifyRule(): args = getArgs() @@ -847,6 +893,10 @@ if __name__ == "__main__": print getRule() elif func == 'add_rule': print addRule() + elif func == 'remove_rule': + print removeRule() + elif func == 'set_rule_state': + print setRuleState() elif func == 'modify_rule': print modifyRule() elif func == 'get_site_rule': diff --git a/plugins/op_waf/js/op_waf.js b/plugins/op_waf/js/op_waf.js index 4c05fe5da..d60d2ce25 100755 --- a/plugins/op_waf/js/op_waf.js +++ b/plugins/op_waf/js/op_waf.js @@ -294,6 +294,40 @@ function modifyRuleSave(index, ruleName) { }); } +function removeRule(ruleName, index) { + var pdata = { + 'index': index, + 'ruleName': ruleName + } + safeMessage('删除规则', '您真的要删除这条过滤规则吗?', function () { + owPost('remove_rule', pdata, function(data){ + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + if (rdata.status) { + setTimeout(function(){ + setObjConf(ruleName, 1); + },1000); + } + }); + }); +} + +function setRuleState(ruleName, index) { + var pdata = { + 'index': index, + 'ruleName': ruleName + } + + owPost('set_rule_state', pdata, function(data){ + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + if (rdata.status) { + setTimeout(function(){ + setObjConf(ruleName, 1); + },1000); + } + }); +} //设置规则 function setObjConf(ruleName, type) { @@ -339,7 +373,7 @@ function setObjConf(ruleName, type) { var tbody = '' for (var i = 0; i < rdata.length; i++) { var removeRule = '' - if (rdata[i][3] != 0) removeRule = ' | 删除'; + if (rdata[i][3] != 0) removeRule = ' | 删除'; tbody += '\ ' + rdata[i][1] + '\ ' + rdata[i][2] + '\ @@ -347,7 +381,7 @@ function setObjConf(ruleName, type) { \
\ \ - \ + \
\ \ ' diff --git a/plugins/op_waf/waf/config.json b/plugins/op_waf/waf/config.json index 8ef61762c..18e38c53f 100755 --- a/plugins/op_waf/waf/config.json +++ b/plugins/op_waf/waf/config.json @@ -1 +1 @@ -{"reqfile_path": "/Users/midoks/Desktop/fwww/server/openresty/nginx/conf/waf/html", "retry": {"retry_time": "180", "is_open_global": "0", "retry": "6", "retry_cycle": "60"}, "log": true, "retry_cycle": 60, "scan": {"status": 444, "ps": "\u8fc7\u6ee4\u5e38\u89c1\u626b\u63cf\u6d4b\u8bd5\u5de5\u5177\u7684\u6e17\u900f\u6d4b\u8bd5", "open": true, "reqfile": ""}, "cc": {"status": 444, "ps": "\u8fc7\u8651CC\u653b\u51fb", "limit": 120, "endtime": 300, "open": true, "reqfile": "", "cycle": 60}, "body_character_string": [], "start_time": 1556095983.425878, "get": {"status": 403, "ps": "\u8fc7\u6ee4uri\u3001uri\u53c2\u6570\u4e2d\u5e38\u89c1sql\u6ce8\u5165\u3001xss\u7b49\u653b\u51fb", "open": true, "reqfile": "get.html"}, "body_regular": [], "log_save": 30, "user-agent": {"status": 403, "ps": "\u901a\u5e38\u7528\u4e8e\u8fc7\u6ee4\u6d4f\u89c8\u5668\u3001\u8718\u86db\u53ca\u4e00\u4e9b\u81ea\u52a8\u626b\u63cf\u5668", "open": true, "reqfile": "user_agent.html"}, "logs_path": "/www/wwwlogs/btwaf", "other": {"status": 403, "ps": "\u5176\u5b83\u975e\u901a\u7528\u8fc7\u6ee4", "reqfile": "other.html"}, "cookie": {"status": 403, "ps": "\u8fc7\u6ee4\u5229\u7528Cookie\u53d1\u8d77\u7684\u6e17\u900f\u653b\u51fb", "open": true, "reqfile": "cookie.html"}, "retry_time": 180, "post": {"status": 403, "ps": "\u8fc7\u6ee4POST\u53c2\u6570\u4e2d\u5e38\u89c1sql\u6ce8\u5165\u3001xss\u7b49\u653b\u51fb", "open": true, "reqfile": "post.html"}, "open": true} \ No newline at end of file +{"reqfile_path": "/Users/midoks/Desktop/fwww/server/openresty/nginx/conf/waf/html", "retry": {"retry_time": "180", "is_open_global": "0", "retry": "6", "retry_cycle": "60"}, "log": true, "retry_cycle": 60, "scan": {"status": 444, "ps": "\u8fc7\u6ee4\u5e38\u89c1\u626b\u63cf\u6d4b\u8bd5\u5de5\u5177\u7684\u6e17\u900f\u6d4b\u8bd5", "open": true, "reqfile": ""}, "cc": {"status": 444, "ps": "\u8fc7\u8651CC\u653b\u51fb", "limit": 120, "endtime": 300, "open": true, "reqfile": "", "cycle": 60}, "body_character_string": [], "start_time": 1556095983.425878, "get": {"status": 403, "ps": "\u8fc7\u6ee4uri\u3001uri\u53c2\u6570\u4e2d\u5e38\u89c1sql\u6ce8\u5165\u3001xss\u7b49\u653b\u51fb", "open": true, "reqfile": "get.html"}, "body_regular": [], "log_save": 30, "user-agent": {"status": 403, "ps": "\u901a\u5e38\u7528\u4e8e\u8fc7\u6ee4\u6d4f\u89c8\u5668\u3001\u8718\u86db\u53ca\u4e00\u4e9b\u81ea\u52a8\u626b\u63cf\u5668", "open": true, "reqfile": "user_agent.html"}, "retry_time": 180, "other": {"status": 403, "ps": "\u5176\u5b83\u975e\u901a\u7528\u8fc7\u6ee4", "reqfile": "other.html"}, "cookie": {"status": 403, "ps": "\u8fc7\u6ee4\u5229\u7528Cookie\u53d1\u8d77\u7684\u6e17\u900f\u653b\u51fb", "open": true, "reqfile": "cookie.html"}, "logs_path": "/www/wwwlogs/btwaf", "post": {"status": 403, "ps": "\u8fc7\u6ee4POST\u53c2\u6570\u4e2d\u5e38\u89c1sql\u6ce8\u5165\u3001xss\u7b49\u653b\u51fb", "open": true, "reqfile": "post.html"}, "open": true} \ No newline at end of file