返回

Chrome 新跨域规则对网站的影响

前端

近年来,跨域资源共享 (CORS) 已成为构建现代 Web 应用程序的重要组成部分。它允许不同的源(协议、端口、主机名)之间的资源共享,从而提高了应用程序的可互操作性和灵活性。然而,随着 Chrome v94 的发布,跨域规则发生了重大变化,给网站带来了深远的影响。

Chrome v94 中最引人注目的变化之一是 严格的 CORS 策略 。以前,如果服务器未明确定义 CORS 标头,浏览器将自动将默认值应用于 CORS 请求。但是,在 Chrome v94 中,如果服务器未指定明确的 CORS 标头,浏览器将 阻止 CORS 请求。这导致以前可以跨域工作的网站接口请求出现错误。

这种变化是为了提高 Web 的安全性,因为未明确定义的 CORS 标头可能会为跨域攻击打开大门。然而,它也给网站开发者带来了挑战,他们现在必须明确定义 CORS 标头以确保跨域请求成功。

Chrome v94 还引入了 Cookie 限制 。在较早版本的 Chrome 中,如果服务器未明确定义 CORS 标头,浏览器将允许跨域请求中包含 Cookie。但是,在 Chrome v94 中,除非服务器明确定义 CORS 标头 设置 SameSite 属性,否则浏览器将 阻止 包含 Cookie 的跨域请求。

这一变化是为了防止跨站脚本 (XSS) 攻击,因为未明确定义的 CORS 标头和缺少 SameSite 属性可能允许攻击者窃取受害者的 Cookie。然而,它也给网站开发者带来了挑战,他们现在必须明确定义 CORS 标头 设置 SameSite 属性以确保跨域请求成功。

这些变化对网站产生了重大影响,特别是那些依赖跨域请求的网站。网站开发者必须适应这些变化并更新其代码以确保他们的网站继续正常运行。

以下是一些应对这些变化并确保网站继续顺利运行的建议:

  • 明确定义 CORS 标头: 确保您的服务器明确定义所有跨域请求的 CORS 标头。包括 Access-Control-Allow-OriginAccess-Control-Allow-MethodsAccess-Control-Allow-Headers 标头。
  • 设置 SameSite 属性: 如果您需要在跨域请求中包含 Cookie,请确保您的服务器在 CORS 标头中设置 SameSite 属性。值可以是 SameSite=StrictSameSite=LaxSameSite=None
  • 测试您的网站: 更新代码后,请彻底测试您的网站以确保所有跨域请求都能成功。使用 Chrome v94 或更高版本进行测试非常重要。

通过遵循这些建议,您可以确保您的网站符合 Chrome v94 的新跨域规则,并继续为用户提供无缝的体验。