浏览器默认设置SameSite属性的作用

文章目录

  • 浏览器默认设置SameSite属性的作用
  • 前言
  • 一、CSRF 攻击是什么
  • 二、SameSite 属性

前言

Google 在2020年2月4号发布的 Chrome 80 版本中默认屏蔽所有第三方 Cookie,即默认为所有 Cookie 加上 SameSite=Lax 属性,并且拒绝非Secure的Cookie设为 SameSite=None;SameSite的作用就是防止跨域传送cookie,从而防止 CSRF 攻击和用户追踪。


一、CSRF 攻击是什么

CSRF(Cross-site request forgery),中文名称:跨站请求伪造

CSRF攻击往往通过盗取你的 Cookie 信息,而Cookie 往往用来存储用户的身份信息,在盗取完你的 Cookie 信息后;恶意网站可以设法伪造带有正确 Cookie 的 HTTP 请求,这就是 CSRF 攻击。

简单来说就是:攻击者盗用了你的身份,以你的名义发送恶意请求。

一个典型的CSRF攻击有着如下的流程:

  1. 当你(受害者)登陆了某个网站AAA.com,验证身份通过后,服务器发来了一个Cookie以确定受害者的身份;于是受害者在本地生成了Cookie。
  2. 在这之后,受害者在未登出AAA.com的情况下,又访问了另一个危险网站BBB.com
  3. BBB.com此时会想要访问AAA.com,于是发送请求,进行想要进行的操作。此时的浏览器会默认携带AAA.com的Cookie。
  4. AAA.com接收到请求后,对请求进行验证,通过其请求中携带AAA.com的Cookie确认是你的身份凭证,误以为是受害者发送的请求。于是就接受了该请求进行相应操作
  5. 至此,CSRF攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让AAA.com执行了自己定义的操作。

CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。


二、SameSite 属性

为了防止CSRF这种攻击行为,在chrome80版本以后默认把cookie的SameSite属性设置为Lax,以此来对第三方cookie做一些限制,这样就能大大地降低被CSRF攻击的风险了。

通过设置Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险。

SameSite可以设置三个值。

  • Strict
  • Lax
  • None
  1. Strict
    Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。

  2. Lax
    Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。

  3. None
    Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。
    不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。

代码如下(示例):

下面的设置无效。

Set-Cookie: widget_session=abc123; SameSite=None

下面的设置有效。

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

参考文献:

  1. 阮一峰的《Cookie 的 SameSite 属性》。
  2. gjt19970425的《浏览器的SameSite策略》
  3. hyddd的《浅谈CSRF攻击方式》

本文简单介绍为何chrome要做此次SameSite默认策略的升级,然后简单介绍了CSRF攻击与SameSite对应的三个属性

浏览器默认设置SameSite属性的作用相关推荐

  1. vue项目运行自动打开浏览器,默认设置为google浏览器的方法

    vue项目运行自动打开浏览器,默认设置为google浏览器. 设置方法就是把google浏览器设置为电脑默认浏览器,具体如下:

  2. 浏览器默认标签样式总结及css初始化程序(转)

    浏览器默认标签样式总结及css初始化程序 html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我们很 ...

  3. 注册表设置IE11浏览器默认属性

    注册表设置IE11浏览器默认属性 工作需要使用IE11浏览器,我们经常会对IE11浏览器做重置后的操作,但是IE11重置后会一直提示"设置向导"或者询问是否要设置为默认浏览器选项, ...

  4. 解决新版chrome浏览器SameSite属性cookie拦截问题

    解决新版chrome浏览器SameSite属性cookie拦截问题 问题现象: 由于升级了新版chrome浏览器后,发现系统正常iframe嵌套.AJAX,Image从以前的跨站会发送三方 Cooki ...

  5. Chrome Cookie SameSite 属性设置

    Chrome Cookie SameSite 设置 Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪. Cookie 的SameS ...

  6. Spring Boot 2.6 正式发布:循环依赖默认禁止、增加SameSite属性...

    昨天,Spring官方正式发布了Spring Boot今年最后一个特性版本:2.6.0 同时,也宣布了2.4.x版本的终结. 那么这个新版本又带来了哪些新特性呢?下面就一起跟着DD来看看吧! 重要特性 ...

  7. select下拉框默认选中selected属性不起作用的解决方法 ligerui

    select下拉框默认选中selected属性不起作用 浏览器-360浏览器 系统-win10 框架-ligerui 原先代码: <td align="left" class ...

  8. 浏览器如何设置默认打印机的纸张类型

    阿里云低价服务器1折特惠,优惠爽翻天,点我立即低价购买 浏览器如何设置默认打印机的纸张类型 浏览器默认打印时是A4打印纸,但是软件大多使用自定义纸张类型, 很多用户发现在打印时设置纸张类型为自定义后, ...

  9. google 浏览器默认打开控制台,浏览器设置:如何将IE设为默认打开的浏览器?

    优质回答 回答者:橘生淮南orange 1.在电脑桌面的下方点击win图标 2.在弹出的菜单中单击"控制面板"选项. 3.将"控制面板"的"查看方式& ...

  10. HTML设置浏览器默认favicon.ico图标

    需求描述: 有些业务场景需要不展示或者动态展示浏览器标签页图标,不展示时则使用浏览器默认的图标.(特别是之前设置过浏览器标签页图标,直接删除link标签是没用的) 解决方案: 修改link标签href ...

最新文章

  1. 真强啊!建议每一位Java程序员都读读Dubbo心跳设计的源码...
  2. UNIX Domain Socket(UDS)是什么?同一台主机间进程间通信
  3. 外星人颜色python练习_都来说一说你们都是如何自学Python的呀?
  4. easyui树拖拽排序java_项目中集成Easyui-Tree,可拖拽更新节点
  5. 《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...
  6. Uber提出有创造力的POET:自行开发更困难环境和解决方案
  7. WebToJepg—在线把网页抓图
  8. 一文讲述G6实现流程图绘制的常用方法
  9. linux 进程间通信机制(IPC机制)一消息队列
  10. 视频教程-Matlab小白入门必备教程-Matlab
  11. 路畅安卓最新固件升级_路畅导航系统固件升级刷机包
  12. 浅谈一下workstation
  13. 常用的音频处理库介绍
  14. 从汇编层次理解malloc函数
  15. 强化学习——股票预测项目复现
  16. 帮助海外游客规划从成田机场开始日本旅行的新网站上线
  17. 易语言cef3填表_易语言CEF3通用浏览器框架,在线帮助手册.pdf
  18. 当域名被微信封了怎么办?
  19. MySQL数据完整性约束
  20. Java官方教程目录2021最新版

热门文章

  1. 逻辑、认识论和本体论“三统一”
  2. python词组语义相似度_语义相似度
  3. 有人称2022年将会是DAO的元年
  4. php用户注册登录6,【php】ThinkPHP6通过Ucenter实现注册登录
  5. 图扑软件数字孪生民航飞联网,构建智慧民航新业态
  6. MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区
  7. 2. 数理统计---样本分布
  8. java编程马拉松比赛_编程马拉松 | Hackathon is coming!
  9. java指纹识别+谷歌图片识别技术
  10. 计算机水平cet2是什么等级,英语cet2等级考试试题