html - 加载本地文件时阻止跨源请求

标签 html css firefox fonts

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

跨源请求被阻止:同源策略不允许读取位于 file:///C:/Users/Me/Desktop/website/resources/dist/css/fonts/themify.ttf 的远程资源。 (原因:CORS请求不是http)。

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

最佳答案

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

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

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

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

关于html - 加载本地文件时阻止跨源请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51081754/

相关文章:

javascript - Canvas datatoURL 不保存 Canvas 内容

html - 如何去掉标题上的空白区域和图像所在的位置?

html - 显示器分辨率不同时按钮移动

html - 100% 宽度、填充和绝对定位

css - Div 图层应放置在 Flash 影片之上

jquery - 使用 jQuery 在图像上定位时间

jQuery 使用哈希向 li href 添加一个类?

javascript - 与现有页面内容交互的 Firefox 扩展

css - XPage 在 Firefox 中无法正确显示

javascript - Firefox 扩展从内容脚本调用插件功能