mar*_*lin 1 fetch cors cross-origin-read-blocking
我正在尝试 从using模式中获取html位于 url 的文件,但响应被 CORB(跨源读取阻塞)阻止。https://sub.app.test/htmlhttps://app.testno-cors
fetch('https://sub.app.test/html', { mode: 'no-cors'})
Run Code Online (Sandbox Code Playgroud)
为什么?
即使no-cors使用了模式(因此不需要Access-Control-Allow-Origin允许响应),请求也会被 CORB 阻止,因为 html 内容被视为数据资源(它可能包含敏感数据)。任何具有 MIME 类型text/html(并且 html 在响应正文中嗅探或X-Content-Type-Options: nosniff设置)的资源都将被 CORB 阻止,这样敏感数据就不会使用像 Spectre 漏洞这样的推测性侧信道攻击泄露(资源不会被添加到站点渲染器的内存)。
有几种方法可以绕过这个限制:
app.test)cors模式(服务器需要添加正确的Access-Controlheader)text/html或根本不设置标题(hacky)阅读更多:
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |