本帖最后由 宝塔用户_wijsxh 于 2019-11-26 17:43 编辑
cc token 标志碰撞问题. 原直接ip..'_'.. request 较容易出现碰撞.导致用户莫名奇妙被锁cc.经过尝试和考虑后,暂定调整方案
修改方案
-- 完全md5碰撞的概率较大
-- local token = httpd:md5(ip .. '_' .. httpd.the_request)
-- 部分md5仍然有一定概率碰撞
-- local token = ip .. '_' .. httpd:md5(httpd.the_request)
-- 全串版本会导致内存索引变慢
-- local token = ip .. '_' .. httpd.the_request
-- 两次md5,将碰撞的概率降到最低
-- 不过说实在的,切换链接就可以无限cc了.....
local token = ip .. httpd:md5(string.sub(httpd.the_request,1,string.len(httpd.the_request)/2)) .. httpd:md5(httpd.the_request)
cc 后,对用户的提示不是很友好.直接416 状态,用户不明所以然.修改显示
function cc -- cc 计数
function drop -- cc 屏蔽标记直接显示
http_status(config['cc']['status'])
return_html22(config['cc']['status'],'<center>您的请求异常已被屏蔽,有需要请联系管理员(QQ:243008827)!</center>')
改为输出html
安全考虑....如果我写个脚本.切换请求地址.这个cc其实没什么用....cc2也没用..... 还是得靠手动拉黑...哈哈.....
这边系统在程序端写了频率限制.作为防采集补充.
无耻的挂个博客链接:haibin.info
|
|