java - 用 Java 解决“加密会话 (ssl) cookie 中缺少安全属性”
问题描述
最近,IBM Security AppScan 发现了加密会话 (ssl) cookie 中缺少安全属性的问题。报告如下:
这个应用程序是 Java 代码,我添加了一个过滤器来设置所有 cookie 的安全,代码:
public class BasicFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
Cookie[] cookies = req.getCookies();
HttpServletResponse resp = (HttpServletResponse) servletResponse;
if( cookies != null && cookies.length > 0) {
for (int i = 0; i < cookies.length; i++) {
cookies[i].setSecure(true);
cookies[i].setHttpOnly(true);
resp.addCookie(cookies[i]);
}
}
filterChain.doFilter(req,resp);
}
@Override
public void destroy() {
}
}
它的工作原理是所有 cookie 都像这样响应两次,它会尝试一遍又一遍地登录(使用SSO 登录):
感谢您的热心帮助,我该如何启用安全和解决 cookie 问题,希望你们能给我一些想法来解决这个问题。谢谢!
解决方案
推荐阅读
- javascript - RestAPI 无法下载从 Django API 发送到 sveltekit 客户端的文件 - 读取 PNG 图像文件的致命错误
- linux - 在 Linux 命令行中创建 FTP 用户
- c# - 是否可以在 azure bot webchat 中的文件上传按钮旁边添加一个按钮?
- kubernetes - 在第二个命名空间上安装 dapr helm chart,而已安装在同一集群中的另一个命名空间上
- javascript - 如何在 HTML iframe 文档中插入特殊字符?
- typescript - 将打字稿配置更改为不接受“任何”
- angular - Monaca / Cordova10 无法在 WKwebview 中使用 iOS 访问 Firebase
- jenkins - 如果创建作业 DSL 管道,git scriptPath 的文档在哪里?
- cypress - 赛普拉斯无法加载第二次测试中使用的不同域
- chart.js - Chartjs: Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'HALF_PI')