CORB阻止html资源获取的无芯不透明请求

时间:2019-02-27 17:05:21

标签: cors fetch cross-origin-read-blocking

我正在尝试使用html模式从https://sub.app.test/html提取位于URL https://app.test上的no-cors文件,但是响应被CORB阻止(跨域读取阻止)

fetch('https://sub.app.test/html', { mode: 'no-cors'})

为什么?

1 个答案:

答案 0 :(得分:2)

即使使用no-cors模式(因此不需要允许响应Access-Control-Allow-Origin),CORB也阻止了该请求,因为html内容被认为是数据资源(它可以包含敏感数据)。 MIME类型为text/html(并且在响应正文中嗅探html或设置了X-Content-Type-Options: nosniff的任何类型的资源)都会被CORB阻止,以便使用Spectre漏洞(如Spectre漏洞(该资源将不会添加到网站渲染器的内存中。

有几种方法可以绕过此约束:

  • 服务来自同一来源(app.test)的资源
  • 使用cors模式(服务器需要添加正确的Access-Control标头)
  • 将MIME类型更改为text/html以外的其他类型,或者根本不设置标头(hacky)

了解更多: