当前位置: 首页 > news >正文

spring低版本设置cookie的samesite属性

场景:比较古老的项目了,ssh架子,Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,可用于防止 CSRF 攻击和用户追踪。因此需要给其字段赋值。

网上找了很多资源,由于jar版本比较低,没有samesite字段,尝试过继承cookie重写类,修改tomcat配置等方式,均不可用;

查看了一些文档,最直接的方式试了下,可行:

private xxx xxx(){            
String sessionValue=((HttpServletRequest) request).getSession().getId();addSameSiteAttribute((HttpServletResponse)response,sessionValue);filter.doFilter(request, response);
}//自定修改cookie某属性内容
private void addSameSiteAttribute(HttpServletResponse response,String sessionValue) {//如果需要修改多个cookie属性 使用	response.addHeader(),内容格式与下方一致
response.setHeader("Set-Cookie","JSESSIONID="+sessionValue+";Path=/imService;HttpOnly=true;Secure;SameSite=Strict");}

SameSite可以设置为三个属性strict,Lax,None

strict属性:该属性表示表示完全禁止第三方cookie,也就是在跨站时,均不会携带cookie,只有当前站点的url和访问的站点的url一致时,才能携带cookie。但是我们此时想一种情况,比如说当前站点A存在一个链接,链接到gitte网站,如果我们之前已经登录了gitte网站的话,则我们再次访问该网站时应该是处于登录状态的。但是我们对当前站点cookie设置了SameSite属性为strict值,所以当前跳转链接并不会携带cookie,所以我们的信息无法得到认证,此时就需要重新登录

Set-Cookie: CookieName=CookieValue; SameSite=strict;

Lax:该属性比strict的属性要宽松一些,其允许我们在跨站使用get请求时(不准确,比如ajaxget)携带cookie。(重定向和window.open 是get请求

Set-Cookie: CookieName=CookieValue; SameSite=Lax;

None属性:chrome默认将Lax设置为默认值,此时我们可以更改samesite的值,将其设置为none,此时必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。

Set-Cookie: widget_session=abc123; SameSite=None;Secure;

http://www.lryc.cn/news/430388.html

相关文章:

  • GPT4o编写步进电机控制代码
  • 关于Spring Boot的自动配置
  • ## 已解决:`java.sql.SQLSyntaxErrorException: SQL语法错误` 异常的正确解决方法,亲测有效!!! ###
  • 备战秋招60天算法挑战,Day22
  • 在Linux下搭建go环境
  • 738.单调递增的数字
  • 近年国际重大网络安全事件深度剖析:安全之路任重道远
  • Windows C++控制台菜单库开发与源码展示
  • ARM——驱动——Linux启动流程和Linux启动
  • Docker和虚拟机的区别详细讲解
  • leetcode_68. 文本左右对齐
  • python探索分形和混沌
  • LeetCode77 组合
  • C#:Bitmap类使用方法—第1讲
  • PaddleNLP 3.0 支持大语言模型开发
  • 32次8.21(学习playbook-roles,脚本创建数据库和表,mycat读写分离)
  • I2C通信协议(软件I2C和硬件I2C)
  • Linux入门——08 进程间通讯——管道
  • 深入探讨SD NAND的SD模式与SPI模式初始化
  • 【jvm】栈和堆的区别
  • 智能的意义是降低世界的不确定性
  • python实现指数平滑法进行时间序列预测
  • linux文件——用户缓冲区——概念深度探索、IO模拟实现
  • Hive3:常用查询语句整理
  • Ubuntu下载安装教程|Ubuntu最新长期支持(LTS)版本24.04 LTS下载安装
  • 通知:《自然语言及语音处理设计开发工程师》即将开课!
  • Vim youcompleteme Windows 安装保姆级教程
  • 港迪技术IPO提交注册,拟募资6.56亿元
  • retinaface在ubuntu20.04(wsl2)下使用tensorrt(c++)部署
  • vue打包设置 自定义的NODE_ENV