目录
原文链接
最简易
通过 cookie 识别访问者身份结合 302 来抵御 CC 攻击,在 location 段加入以下代码:
if ($cookie_say != "isuike"){
add_header Set-Cookie "say=isuike";
rewrite .* "$scheme://$host$uri" redirect;
}
简易增强
如果 cc 带了 cookie,那么可以加上用户 ip 的识别并写入到 cookie 验证中,结合 302,在 location 段加入以下代码:
if ($cookie_say != "isuike$remote_addr"){
add_header Set-Cookie "say=isuike$remote_addr";
rewrite .* "$scheme://$host$uri" redirect;
}
理论上的完美版
用 salt 加散列,这里需要 nginx_lua 模块,同样,加入以下代码:
rewrite_by_lua '
local say = ngx.md5("isuike" .. ngx.var.remote_addr)
if (ngx.var.cookie_say ~= say) then
ngx.header["Set-Cookie"] = "say=" .. say
return ngx.redirect(ngx.var.scheme .. "://" .. ngx.var.host .. ngx.var.uri)
end
';
这些方法可以解决过 CDN,无法识别 ip 访问频率等因素导致的攻击识别困难的 CC 类攻击防御
Comments NOTHING