加载本地文件时阻止跨域请求

新手上路,请多包涵

我目前正在开发一个网站,但无法在 Firefox 中显示我的字体图标。除了 firefox 之外的每个浏览器都可以加载并显示我的字体图标,但是在 firefox 上我收到以下错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///C:/Users/Me/Desktop/website/resources/dist/css/fonts/themify.ttf. (Reason: CORS request not http).

文件的路径是正确的,因为浏览器让我在输入上面列出的 URL 时下载文件。任何人都知道为什么我会收到此错误?

原文由 user9533436 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 859
2 个回答

如评论部分所述,我安装了一个网络服务器。在我的例子中,我使用了 tomcat8 并且使用它我什至能够在 firefox 中显示图标。

原文由 user9533436 发布,翻译遵循 CC BY-SA 4.0 许可协议

Firefox 68 包含一个安全补丁,它限制了从 file:// URL 打开页面时页面可以加载的文件类型(以及加载方法)。进行此更改是为了防止在本地页面范围内泄露有价值的数据,如可用漏洞利用所示。更多信息: https ://developer.mozilla.org/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp

我昨天提交了一个错误,建议允许使用字体,但实施起来需要时间。现在,您可以按如下方式回滚补丁:

  1. 在新选项卡中,在地址栏中键入或粘贴 about:config ,然后按 Enter/Return。单击承诺小心或接受风险的按钮。
  2. 在列表上方的搜索框中,键入或粘贴 uniq
  3. 双击 privacy.file_unique_origin 首选项将值从 true 切换为 false
  4. Firefox > 106 security.fileuri.strict_origin_policy 设置为 false

缓解漏洞:如果您将来自不受信任站点的页面保存在单独的文件夹中,例如 Downloads\Untrusted,那么攻击者将很难使用本地文件链接找到任何有价值的内容。

原文由 Mahdi Aslami Khavari 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏