pull/109/head
midoks 6 years ago
parent e625b8b416
commit 16198dd66e
  1. 48
      plugins/op_waf/waf/lua/common.lua
  2. 49
      plugins/op_waf/waf/lua/init.lua

@ -121,6 +121,54 @@ function _M.read_file_table( self, name )
return self:select_rule(self:read_file('args'))
end
---------------------------------------------------
function _M.get_server_name(self)
local c_name = ngx.var.server_name
local my_name = ngx.shared.limit:get(c_name)
if my_name then return my_name end
local tmp = self:read_file_body(self.cpath .. 'domains.json')
if not tmp then return c_name end
local domains = json.decode(tmp)
for _,v in ipairs(domains)
do
for _,d_name in ipairs(v['domains'])
do
if c_name == d_name then
ngx.shared.limit:set(c_name,v['name'],3600)
return v['name']
end
end
end
return c_name
end
function _M.get_client_ip(self)
local client_ip = "unknown"
if self.site_config[server_name] then
if self.site_config[server_name]['cdn'] then
for _,v in ipairs(self.site_config[server_name]['cdn_header'])
do
if request_header[v] ~= nil and request_header[v] ~= "" then
local header_tmp = request_header[v]
if type(header_tmp) == "table" then header_tmp = header_tmp[1] end
client_ip = split(header_tmp,',')[1]
break;
end
end
end
end
if string.match(client_ip,"%d+%.%d+%.%d+%.%d+") == nil or not self:is_ipaddr(client_ip) then
client_ip = ngx.var.remote_addr
if client_ip == nil then
client_ip = "unknown"
end
end
return client_ip
end
function _M.t(self)
ngx.say(',,,')
end

@ -33,58 +33,14 @@ C.setConfData(config, site_config)
function get_client_ip()
local client_ip = "unknown"
if site_config[server_name] then
if site_config[server_name]['cdn'] then
for _,v in ipairs(site_config[server_name]['cdn_header'])
do
if request_header[v] ~= nil and request_header[v] ~= "" then
local header_tmp = request_header[v]
if type(header_tmp) == "table" then header_tmp = header_tmp[1] end
client_ip = split(header_tmp,',')[1]
break;
end
end
end
end
if string.match(client_ip,"%d+%.%d+%.%d+%.%d+") == nil or not is_ipaddr(client_ip) then
client_ip = ngx.var.remote_addr
if client_ip == nil then
client_ip = "unknown"
end
end
return client_ip
end
function get_server_name()
local c_name = ngx.var.server_name
local my_name = ngx.shared.limit:get(c_name)
if my_name then return my_name end
local tmp = C:read_file_body(cpath .. 'domains.json')
if not tmp then return c_name end
local domains = json.decode(tmp)
for _,v in ipairs(domains)
do
for _,d_name in ipairs(v['domains'])
do
if c_name == d_name then
ngx.shared.limit:set(c_name,v['name'],3600)
return v['name']
end
end
end
return c_name
end
local args_rules = C:read_file_table('args')
local retry = config['retry']
local retry_time = config['retry_time']
local retry_cycle = config['retry_cycle']
local ip
local server_name
local ip = C:get_client_ip()
local server_name = string.gsub(C:get_server_name(),'_','.')
@ -253,7 +209,6 @@ function waf()
-- server_name = string.gsub(get_server_name(),'_','.')
ngx.header.content_type = "text/plain"
-- ip = get_client_ip()
C:t()
-- ngx.say(read_file('args'));
-- args()

Loading…
Cancel
Save