SameSite是什么?

来源:TechTMT.Com  作者:整理  日期:2022-02-24 21:25:47

Chrome 51 开始,浏览器的Cookie新增加了一个SameSite属性,用来防止CSRF攻击和用户追踪。Cookie 的 SameSite 属性用来限制第三方 Cookie,从而减少安全风险。

SameSite

Web 前端安全,从影响面看排名前两位的就是 XSS 和 CSRF,其基本原理都是攻破了浏览器同源策略的限制。CSRF 漏洞目前的措施一般是验证 referer 或者是用安全 token。而 google 则希望从标准层面去根治这个排名第二的前端安全漏洞。其方案就是给 Cookie 新增一个属性,用这个属性来控制什么情况下可以发送 Cookie,这个属性就是我们今天要讨论的 SameSite 属性。

SameSite 属性有三个枚举值,分别是 strict/lax/none。Strict 最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。Lax 规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。

设置了 Strict 或 Lax 以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。Chrome 计划将 Lax 变为默认设置。这时,网站可以选择显式关闭 SameSite 属性,将其设为 None。不过,前提是必须同时设置 Secure 属性(Cookie 只能通过 HTTPS 协议发送),否则无效。

对于依赖三方 Cookie 的业务,比如登录组件,商业化组件等,需要做技术改造来适应 Google 的这个调整。就像对抗疫情一样,Web 安全治理需要整个行业技术生态的支持,从这个角度看,我们互联网技术人应该积极响应和支持 Google 的这个策略。

稍微尴尬的是有些企业还没有这个觉悟,比如我们常用的 Java Web 开发底层框架,Servlet 的 Cookie 类还没有支持这个新的属性,需要我们自己去实现。希望 Google 这一举动能反向驱动整个行业生态,共同来根治 CSRF 漏洞。可以预见 3-5 年以后,互联网的江湖将不再存在 CSRF 这个漏洞了。

分类:资讯
标签:是什么
编辑:tmt
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。文章版权归原作者所有,内容不代表本站立场!
免责声明: 阁下应知本站所提供的内容不能做为操作依据。本站作为信息内容发布平台,不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考! 如文中内容影响到您的合法权益(含文章中文字、图片等),请及时联系本站,我们会及时删除处理。