

两个你必须要重视的 Chrome 80 策略更新!!!
source link: http://mp.weixin.qq.com/s?__biz=Mzg2NDAzMjE5NQ%3D%3D&%3Bmid=2247485327&%3Bidx=1&%3Bsn=5a9a83656dd4b8f146c8ed6ae29422e8
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


Chrome 80
版本在 2020年2月份 正式发布了,随后又陆续更新了几个小版本,本次升级主要是更新了安全修复和稳定性改进以及用户体验优化。
如果你是一个Web站点维护者、其中的两项更新你一定要关注,因为下面这两项更新可能导致你站点的现有的功能不能正常运行;你需要及时排查站点是否存在问题并且做出对应的修复策略。
1.混合内容强制 HTTPS
混合内容是指 https
页面下有非 https
资源时,浏览器的加载策略。
在 Chrome 80
中,如果你的页面开启了 https
,同时你在页面中请求了 http
的音频和视频资源,这些资源将将自动升级为 https
,并且默认情况下,如果它们无法通过 https
加载, Chrome
将阻止它们。这样就会造成一些未支持 https
协议的资源加载失败。
如果你想临时访问这些资源,你可以通过更改下面的浏览器设置来访问:
1.单击地址栏上的锁定图标并选择 “站点设置”:

2.将 "隐私设置和安全性" 中的 "不安全内容" 选择为 "允许":

你还可以通过设置 StricterMixedContentTreatmentEnabled
策略来控制这些变化:
此策略控制浏览器中混合内容(HTTPS站点中的HTTP内容)的处理方式。如果该政策设置为true或未设置,则音频和视频混合内容将自动升级为HTTPS(即,URL将被重写为HTTPS,如果资源不能通过HTTPS获得,则不会进行回退),并且将显示“不安全”警告在网址列中显示图片混合内容。如果该策略设置为false,则将禁用音频和视频的自动升级,并且不会显示图像警告。该策略不影响音频,视频和图像以外的其他类型的混合内容。
但是以上策略是一个临时策略,将在 Chrome 84
中删除。更合理的方式是你需要推动全站资源开启 HTTPS
、 Chrome
也是推荐大家这么做的。
2.强推 SameSite Cookie
SameSite
是 Chrome 51
版本为浏览器的 Cookie
新增的了一个属性, SameSite
阻止浏览器将此 Cookie
与跨站点请求一起发送。其主要目标是降低跨源信息泄漏的风险。同时也在一定程度上阻止了 CSRF
(Cross-site request forgery 跨站请求伪造)。

Cookie
往往用来存储用户的身份信息,恶意网站可以设法伪造带有正确 Cookie
的 HTTP
请求,这就是 CSRF
攻击。
SameSite
可以避免跨站请求发送 Cookie
,有以下三个属性:
Strict
Strict
是最严格的防护,将阻止浏览器在所有跨站点浏览上下文中将 Cookie
发送到目标站点,即使在遵循常规链接时也是如此。因此这种设置可以阻止所有 CSRF
攻击。然而,它的用户友好性太差,即使是普通的 GET
请求它也不允许通过。
例如,对于一个普通的站点,这意味着如果一个已经登录的用户跟踪一个发布在公司讨论论坛或电子邮件上的网站链接,这个站点将不会收到 Cookie
,用户访问该站点还需要重新登陆。
不过,具有交易业务的网站很可能不希望从外站链接到任何交易页面,因此这种场景最适合使用 strict
标志。
Lax
对于允许用户从外部链接到达本站并使用已有会话的网站站,默认的 Lax
值在安全性和可用性之间提供了合理的平衡。 Lax
属性只会在使用危险 HTTP
方法发送跨域 Cookie
的时候进行阻止,例如 POST
方式。

例如,一个用户在 A站点 点击了一个 B站点(GET请求),而假如 B站点 使用了 Samesite-cookies=Lax
,那么用户可以正常登录 B 站点。相对地,如果用户在 A 站点提交了一个表单到 B站点(POST请求),那么用户的请求将被阻止,因为浏览器不允许使用 POST
方式将 Cookie
从A域发送到B域。
None
浏览器会在同站请求、跨站请求下继续发送 Cookies
,不区分大小写。
策略更新
在旧版浏览器,如果 SameSite
属性没有设置,或者没有得到运行浏览器的支持,那么它的行为等同于 None
, Cookies
会被包含在任何请求中——包括跨站请求。
但是,在 Chrome 80+
版本中, SameSite
的默认属性是 SameSite=Lax
。换句话说,当 Cookie
没有设置 SameSite
属性时,将会视作 SameSite
属性被设置为 Lax
。如果想要指定 Cookies
在同站、跨站请求都被发送,那么需要明确指定 SameSite
为 None
。具有 SameSite=None
的 Cookie
也必须标记为安全并通过 HTTPS
传送。

如果你的 Cookie
未能正确配置。以下是 Chrome 80
和早期的 Chrome
(77 以上)版本中开发者工具控制台的警告:

在 Chrome 88
之前,您将能够使用策略还原为旧版 Cookie
行为。您可以使用 LegacySameSiteCookieBehaviorEnabledForDomainList
指定受信任的域,也可以使用 LegacySameSiteCookieBehaviorEnabled
控制全局默认值。有关更多详细信息,请访问 Cookie旧版SameSite政策
:https://www.chromium.org/administrators/policy-list-3/cookie-legacy-samesite-policies。
以上更新可能对以下功能造成影响:
-
跨域名登陆失效
jsonp
iframe
-
部分客户端未改造导致各种数据获取异常
建议大家针对上述更新对自己的站点功能在新版浏览器下做一些测试,以免影响功能正常使用。
你可以到 chrome://flags/
开启 SameSite by default cookies
、 Cookies without SameSite must be secure
进行测试。

Recommend
-
70
-
10
-
8
Python入门这些你必须要知道! hello,大家好,我是Dream,今天给大家介绍一下Python和Python的一些基础知识及应用!先点赞收藏起来吧~!
-
8
2017年,身为Android开发的你必须要掌握的热门开源框架 – Android开发中文站你的位置:Android开发中文站 > 热点资讯 > 2017年,身为Android开发的...
-
8
直播,在过去的一段时间里被频繁提及。 在这段时间里,直播经历了全民围观、成为企业的救命稻草、政府扶持鼓励甚至还有黑幕的挖掘。 在这个过程中,我们还发现,有很多人经历了从看不起直播、到看不懂直播,再到最后追不上别人脚步的过程。...
-
10
直播授课+项目实战 一年免费回看,不断巩固知识 建议每周学习1-3节课 项目实战+就业指导+答疑 贴心服务,为学习效果保驾护航
-
3
学习c语言的你必须要知道的一些事情:永远不要在 windows 尝试任何 Unix 移植版的编译器发布于 今天 18:35 子标题:永远不要在 windows 尝试
-
8
玩好NFT 你必须要了解这些工具 区块律动BlockBeats 刚刚 原文标题:《Cool NFT tools | Q1 2022》原文作者:William M. Peaster原文编...
-
7
你必须要懂的亚马逊广告单次竞价策略! ...
-
5
存量竞争时代,对于产品优化需要通过数据驱动,其中用的最多的就是漏斗模型。而其中最有价值的漏斗模型就是AARRR模型
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK