You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
uuWAF/rules/anti-cc.lua

32 lines
677 B

--[[
: anti cc
:
:
: 访/api/3605ip访
--]]
if not waf.startWith(waf.toLower(waf.uri), "/api/") then
return false
end
local sh = ngx.shared.ipCache
local ccIp = 'cc-' .. waf.ip
local c, f = sh:get(ccIp)
if not c then
sh:set(ccIp, 0, 60, 1) -- 设置1分钟也就是60秒访问计数时间
else
if f == 2 then
return waf.block(true)
end
sh:incr(ccIp, 1)
if c >= 360 then
sh:set(ccIp, c, 300, 2) -- 设置5分钟也就是300秒拦截时间
end
end
return false