2020-10-31 17:28
@zzutligang @JFinal 感谢两位周末还给予及时的回复,这个也是我喜欢jfinal的原因之一,技术支持的速度超快!
2020-09-20 11:20
@JFinal 波总,针对这个问题,我查了很多资料,最终觉得还是cookie攻击,解决方法只有通过nginx 防火墙了。在此记录一下,期待以后有人提供更好的方法。
我写的防火墙代码如下:
local ck_list=split2(request_header['cookie'],';')
if ck_list and #ck_list>200 then
write_log('cookie','数量超过200')
return true
end
2020-09-16 08:36
@JFinal 波总,我观察了几天,异常数量没有下降,然后写了一个全局拦截器,但是好像超过200个cookie的时候,undertow直接报错了,没有进入拦截器。
这个问题有啥好的方法吗?是否需要更改undertow 的配置?再次感谢。
代码如下:
Cookie cookies[]=c.getCookieObjects();
logger.info("垃圾cookie数量="+cookies.length);
for(Cookie cookie:cookies){
String name=cookie.getName();
if(!LoginService.sessionIdName.equals(name)){
c.removeCookie(name);
logger.info("删除垃圾cookie ="+ JSONObject.toJSONString(cookie));
}
}
2020-09-12 19:54
不好意思,问题还是没有解决。我把所有可能会产生cookie的代码都给关闭了。但是服务器的log还是一堆一堆的cookie超200的异常。
我反复百度了,只找到一个可能有用的线索,如下:
再次重新审视这一点,我发现,它似乎是一种确定的安全措施。
起初我认为,在特定的时间范围内,只能生成有限数量的cookie,但情况并非如此。如果攻击者试图通过向请求发送大量cookie来攻击您的Web服务器,则会抛出此异常,可能导致缓冲区溢出。
@JFinal 请教波哥,您是否觉得这个是某些攻击?或者有啥好的解决办法吗?谢谢。
2020-05-10 10:11
@一川死水 发现一个小bug,这一行是不是有点问题
user.put("expireAt", session.getId());