\
diff --git a/plugins/op_waf/waf/lua/init.lua b/plugins/op_waf/waf/lua/init.lua
index 07ee25c49..615f50db9 100644
--- a/plugins/op_waf/waf/lua/init.lua
+++ b/plugins/op_waf/waf/lua/init.lua
@@ -33,6 +33,7 @@ local user_agent_rules = require "rule_user_agent"
local post_rules = require "rule_post"
local cookie_rules = require "rule_cookie"
local url_rules = require "rule_url"
+local url_white_rules = require "rule_url_white"
local server_name = string.gsub(C:get_sn(config_domains),'_','.')
@@ -181,6 +182,13 @@ local function waf_ip_white()
return false
end
+local function waf_url_white()
+ if C:ngx_match_list(url_white_rules, params['uri']) then
+ return true
+ end
+ return false
+end
+
local function waf_ip_black()
-- ipv4 ip black
for _,rule in ipairs(ip_black_rules)
@@ -517,6 +525,9 @@ function waf()
-- white ip
if waf_ip_white() then return true end
+ -- url white
+ if waf_url_white() then return true end
+
-- black ip
if waf_ip_black() then return true end
diff --git a/plugins/op_waf/waf/rule/url_white.json b/plugins/op_waf/waf/rule/url_white.json
new file mode 100755
index 000000000..f5795c418
--- /dev/null
+++ b/plugins/op_waf/waf/rule/url_white.json
@@ -0,0 +1 @@
+[[1,"^/phpmyadmin_","MySQL[phpMyAdmin]", 0]]
\ No newline at end of file