【Web技术】跨来源资源共享(CORS)
浏览器的同源策略阻止从不同的源读取资源。这种机制阻止恶意网站读取其他网站的数据,但也阻止合法使用。
现代web应用程序通常希望从不同的来源获取资源,例如,从不同的域检索JSON数据,或将另一个网站的图像加载到<canvas>元素中。这些可以是公共资源,任何人都可以阅读,但同源政策阻止了它们的使用。开发人员历来使用诸如JSONP之类的变通方法。
跨来源资源共享(CORS)以标准化的方式解决了这个问题。启用CORS可以让服务器告诉浏览器它可以使用一个额外的原点。
【Web开发】使用Fetch Metadata保护您的资源免受网络攻击
你为什么要关心隔离你的网络资源?
许多web应用程序容易受到跨来源攻击,如跨站点请求伪造(CSRF)、跨站点脚本包含(XSSI)、定时攻击、跨来源信息泄露或推测执行侧通道(Spectre)攻击。
Fetch Metadata请求头允许您部署一种强大的深度防御机制——资源隔离策略——以保护您的应用程序免受这些常见的跨源攻击。
由给定的web应用程序公开的资源通常只由应用程序本身加载,而不由其他网站加载。在这种情况下,部署基于Fetch Metadata请求头的资源隔离策略几乎不需要付出什么努力,同时可以保护应用程序免受跨站点攻击。
浏览器兼容性
所有现代浏览器引擎都支持获取元数据请求标头。
浏览器支持
【Web开发】使用HTTPS进行本地开发
大多数时候,http://localhost出于开发目的,其行为类似HTTPS。然而,也有一些特殊情况,例如自定义主机名或跨浏览器使用安全cookie,在这些情况下,您需要明确设置您的开发网站,使其表现得像HTTPS,以准确地表示您的网站在生产中的工作方式。(如果您的生产网站不使用HTTPS,请优先切换到HTTPS)。
本页介绍如何使用HTTPS在本地运行您的网站。
注意:在本文中,关于localhost的语句也适用于127.0.0.1和[::1],因为它们都描述了本地计算机地址(也称为环回地址)。为了简单起见,这些说明没有指定端口号。所以当你看到http://localhost,读作http://localhost:{PORT}或http://127.0.0.1:{端口}。
有关简要说明,请参阅mkcert快速参考**
【Web技术】使用COOP和COEP使您的网站“跨来源隔离”
使用COOP和COEP来建立一个跨原点的隔离环境,并以更好的精度启用强大的功能,如SharedArray Buffer、performance.measureUserAgentSpecificMemory()和高分辨率计时器。
注意:Chrome桌面上的SharedArrayBuffer需要从Chrome 92开始进行跨源隔离。在Android Chrome 88和Desktop Chrome 92中的SharedArray Buffer更新中了解更多信息。
【Web技术】为什么您需要“跨源隔离”才能获得强大的功能
了解为什么需要跨源隔离才能使用强大的功能,如SharedArray Buffer、performance.measureUserAgentSpecificMemory()和精度更高的高分辨率计时器。
介绍
在使用COOP和COEP使您的网站“跨源隔离”的过程中,我们解释了如何使用COOP和COEP采用“跨源隔离”状态。这是一篇配套文章,解释了为什么需要跨源隔离才能在浏览器上启用强大的功能。
关键词:这篇文章使用了许多听起来相似的术语。为了使事情更清楚,让我们定义它们:
【Web技术】"Same-site" 和 "same-origin"
“同一网站”【"Same-site" 】和“同源”【"same-origin"】是经常被引用但经常被误解的术语。例如,它们用于页面转换、fetch()请求、cookie、打开弹出窗口、嵌入资源和iframe的上下文。本页解释了它们是什么以及它们之间的区别。
【Web技术】SameSite Cookie配方
- 警告:浏览器正在限制第三方cookie的使用。如果您过去在cookie上设置过SameSite=None,则必须采取其他操作。了解如何准备第三方cookie限制。
注意:此页面是SameSite cookie属性更改系列的一部分,其中包括:
- 了解Cookie
- SameSite cookie解释
- 有计划的相同站点
Chrome、Firefox、Edge和其他公司正在根据IETF的提案“Incrementally Better Cookies”更改其默认行为,以便:
- 没有SameSite属性的Cookie被视为SameSite=Lax,这意味着默认行为是将Cookie仅限于第一方上下文。
- 跨站点使用的Cookie必须指定SameSite=None;确保能够包含在第三方环境中。
如果您还没有这样做,您应该更新第三方cookie的属性,这样它们将来就不会被阻止。
浏览器支持
【Web技术】SameSite cookie解释
警告:浏览器正在限制第三方cookie的使用。如果您过去在cookie上设置了SameSite=None,则需要采取其他操作。了解如何准备第三方cookie限制。
注意:此页面是SameSite cookie属性更改系列的一部分,其中包括以下内容:
- 了解Cookie
- SameSite饼干配方
- 有计划的相同站点
每个cookie都包含一个键值对以及控制cookie何时何地使用的许多属性。
SameSite属性(在RFC6265bis中定义)的引入允许您声明您的cookie是限于第一方还是同一站点上下文。准确理解“site”在这里的含义是很有帮助的。该站点是域后缀和其前面的域部分的组合。例如,www.web.dev域是web.dev站点的一部分。
关键术语:如果用户在www.web.dev上,并从static.web.dev请求图像,则是同一个网站请求。
【web技术】了解Cookie
cookie是存储在浏览器中的一组数据,用于保存网站执行其功能所需的状态和其他信息。
注意:本文是SameSite cookie属性更改系列文章的一部分,其中包括:
- SameSite cookie解释
- SameSite饼干配方
- 有计划的相同站点
cookie是网站存储在用户机器上的一个小文件,它存储的信息在浏览器和网站之间来回传播。
每个cookie都是一个键值对,以及控制该cookie何时何地使用的许多属性。这些属性用于设置过期日期或指示cookie只能通过HTTPS发送等内容。您可以在HTTP头中或通过JavaScript接口设置cookie。
Cookie是可用于向网站添加持久状态的方法之一。多年来,他们的能力不断发展,但给平台留下了一些遗留问题。为了解决这一问题,浏览器(包括Chrome、Firefox和Edge)正在改变其行为,以强制执行更多的隐私保护默认值。
注:了解更多关于Chrome保护人们在线隐私的努力,并为公司和开发者提供工具来建立繁荣的数字业务。
【Web技术】挖掘隐私沙盒
隐私沙盒是一系列建议,旨在满足第三方使用情况,而无需第三方cookie或其他跟踪机制。