This set-cookie didn‘t specify a ‘SameSite‘ attribute and was defaulted to ‘SameSite=lax‘

本地登录某个项目系统的时候,login成功,但是login的接口的set-cookie有感叹号,后续的接口并没有携带cookie,导致401登录系统失败。

在这里插入图片描述

这个警告是由浏览器发出的,告诉你在HTTP响应头的Set-Cookie字段中缺少SameSite属性,因此浏览器默认将其设置为SameSite-Lax。这可能导致跨站点的Cookie在某些情况下被阻止,因为默认情况下,浏览器要求Cookie只能在顶级导航的响应中进行设置,否则就要求设置SameSite=None以允许跨站点使用。

首先,让我们理解这里的一些关键术语:

  1. Set-Cookie头部字段: 在HTTP响应中,服务器可以通过Set-Cookie头部字段来设置Cookie。

  2. SameSite属性: SameSite属性是Cookie的一个属性,用于控制Cookie在跨站点请求中是否被发送。它有三个可能的值:StrictLaxNone

  • Strict:仅允许在顶级导航中发送Cookie,即完全禁止第三方网站发送Cookie。(只允许访问同一个域名下的网络请求;)

  • Lax:允许在顶级导航和导航到嵌套导航的安全上下文中发送Cookie,例如通过安全链接访问的子页面。(允许访问同一个域名下的网络请求和同一个根域名下的网络请求)

  • None:允许在任何情况下发送Cookie,包括跨站点请求。

  1. Cross-Site请求: 当请求的源与页面的源不同,就称为跨站点请求。

现在,让我们通过一个例子来说明这个警告:

假设你的网站www.example.com向服务器发出请求,并且服务器返回了一个包含Set-Cookie头部字段的响应,但该字段没有指定SameSite属性。浏览器为了安全性,默认会将SameSite属性设置为Lax,即只在顶级导航中发送Cookie。

如果你的网站上有一个第三方资源,比如api.external.com,它返回一个设置了Cookie的响应,而且该Cookie未指定SameSite属性,浏览器就会发出这个警告。因为这个Cookie是通过跨站点的响应设置的,而不是在顶级导航中。

要解决这个问题,你需要确保在响应头部的Set-Cookie字段中设置了SameSite=None,以允许跨站点使用。这通常需要在服务器端进行配置,以确保服务器正确设置Cookie的SameSite属性。

总体而言,这个警告是为了加强安全性,防止恶意网站利用Cookie进行一些潜在的攻击。通过了解SameSite属性以及如何正确设置Cookie,你可以确保你的网站在安全性方面符合最佳实践。

参考:https://blog.csdn.net/p763833631/article/details/115671906

在这里插入图片描述

然后发现其他浏览器是ok的(eg:Firfox)。可以偷偷更换浏览器启动项目。

其他文章下找到的评论:可以降级chrome(91)或者找一下替代浏览器,比如说360。

在这里插入图片描述

参考:https://blog.csdn.net/luoyun620/article/details/118522592

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值