同源政策和提取请求

Mariko Kosaka

在此 Codelab 中,您将了解同源政策在提取资源时如何发挥作用。

设置:从同一源提取网页

演示托管在 https://same-origin-policy-fetch.glitch.me。 这个简单的网页使用 fetch 从 https://same-origin-policy-fetch.glitch.me/fetch.html 加载资源。由于 index.html 和 fetch.html 具有相同的来源,因此您应该会在实时预览中看到 200。

1. 从其他来源提取网页

请尝试将提取网址更改为 https://www.google.com。 您在实时预览中看到了什么?

浏览器应该已屏蔽提取请求,因为您请求了来自其他来源的资源。这意味着,即使攻击者控制了用户的浏览器,也无法读取跨域资源。

2. 提取跨域资源

请尝试将提取网址更改为 https://api.thecatapi.com/v1/images/search。 您在实时预览中看到了什么?

提取网址是不同的来源,但您应该会看到状态代码 200。变化原因 现代 Web 应用通常会请求跨域资源来加载第三方脚本或查询 API 端点。为了适应这些用例,有一种称为 CORS(跨域资源共享)的机制,用于告知浏览器允许加载跨域资源。如需详细了解 CORS,请参阅安全地共享跨域资源。