2020-09-23 10:57

好像我这里也没有啥影响,据说有些网站受攻击后,什么溢出之类的问题导致网站宕机,或者数据乱掉之类的吧,undertow这方面还是很强大的啊。

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-13 15:38

@JFinal 感谢波哥周末深夜回复!!我依法测试一下。再次感谢。

2020-09-12 19:54

不好意思,问题还是没有解决。我把所有可能会产生cookie的代码都给关闭了。但是服务器的log还是一堆一堆的cookie超200的异常。
我反复百度了,只找到一个可能有用的线索,如下:
再次重新审视这一点,我发现,它似乎是一种确定的安全措施。

起初我认为,在特定的时间范围内,只能生成有限数量的cookie,但情况并非如此。如果攻击者试图通过向请求发送大量cookie来攻击您的Web服务器,则会抛出此异常,可能导致缓冲区溢出。

@JFinal 请教波哥,您是否觉得这个是某些攻击?或者有啥好的解决办法吗?谢谢。

2020-09-11 13:28

请教波哥,你这些Cookie怎么查看的?我用F12,只看到了hm.js有些cookie,其他的都没有发现有cookie,再次感谢。

2020-09-11 10:39

谢谢,这一块我不太熟悉,印象中只是在分享的时候用到了百度分享,其他地方都没有用cookie,我再看一下代码吧。再次感谢。

2020-05-26 19:42

太赞了,楼主有时间再整一个前后端分离的版本吧

2020-05-10 10:11

@一川死水 发现一个小bug,这一行是不是有点问题
user.put("expireAt", session.getId());

2020-05-04 18:02

我也是一直在用hutool,很好用的。

2020-04-28 17:03

但是很多帖子说楼主写的代码也是可以的,不知道为啥我这里就是不行。
https://blog.csdn.net/weixin_30446613/article/details/98045779

2020-04-28 16:59

这个问题太棘手了,关键前台技术太烂了,最后在百度的帮助下终于解决了。
https://www.cnblogs.com/zff-y/p/12765333.html

function view (path) {
return function (resolve) {
require([`@/views/${path}.vue`], resolve)
}
}

2020-04-28 09:36

运行起来了,但是前台只有一个首页,其他页面都打不开
Error: Cannot find module '@/views/cm/org'
at webpackEmptyContext (eval at ./src/store/modules sync recursive (app.js:3805), :2:10)
at eval (webpack-internal:///./src/store/modules/permission.js:77)
类似这样的报错
@一川死水

2020-04-27 15:36

我也遇到了同样的问题,我的解决代码如下:
//允许跨域访问的域名,若有端口需要写全(协议+域名+端口),若没有端口末尾不用加'/'
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE,OPTIONS");
//允许前端带认证Cookie,启用此项后,上面的域名不能为*,必须制定具体的域名,否则浏览器会提示
response.setHeader("Access-Control-Allow-Credentials","true");
//提示OPTION预检时,后端需要设置的两个常用自定义头
response.setHeader("Access-Control-Allow-Headers","Content-Type,X-Requested-With,withCredentials");