【问题标题】:GitHub README Images Broken - "violates the following Content Security Policy directive: "img-src 'self'"GitHub README 图片损坏 - “违反以下内容安全策略指令:“img-src 'self'”
【发布时间】:2021-05-02 15:07:37
【问题描述】:

SO 社区,

我在我的 GitHub 存储库 README 中使用嵌入式图像(图标、屏幕截图等),今天注意到我的所有图像在不久前(大约一周左右)之前工作时都损坏了。一些开发者朋友的 repos 显示相同的症状和浏览器控制台错误:

Refused to load the image 'https://raw.githubusercontent.com.x.912eb622002e804d2d0bc98027f64e5bb4af.9270fa5c.id.opendns.co
m/s/raw.githubusercontent.com/terrencemm2/terrencemm2/main/assets/japanese_flag.png?X-OpenDNS-
Session=_912eb622002e804d2d0bc98027f64e5bb4af9270fa5c_MHRsNPzb_' because it violates the 
following Content Security Policy directive: "img-src 'self' data: github.githubassets.com 
identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com 
*.githubusercontent.com".

注意:这些是正确的,并在单独的选项卡/窗口中显示正确的图像。

通常,我专门创建了一个名为 media 的单独的未合并分支,其中包含我想在我的 README 中使用的任何图像,然后像这样链接它们......

选项 1:<img> 带有完整的原始内容 URL。
<img src="https://raw.githubusercontent.com/terrencemm2/terrencemm2/main/assets/azure.png" height=14 />

选项 2:<img> 与相对路径。
<img align="right" width="100" height="100" src="../media/logo.png?raw=true">

选项 3:https://guides.github.com/features/mastering-markdown/ 的图像 Markdown 语法。
![Screenshot](../media/screenshot.png?raw=true)

【问题讨论】:

  • 您在哪里看到这些错误?浏览器控制台?嵌入在 HTML 中?别处?您能否提供(或至少指出)一个真实示例,其中包含源文本、生成的 HTML 以及浏览器显示的内容?
  • 更具体地说,我上面的问题试图缩小被违反的内容安全政策是 GitHub 的政策还是您的浏览器的政策。或者也许这就是你要问的。目前尚不清楚,因为您的“问题”中不存在任何问题。
  • @Waylan 这些错误显示在浏览器控制台 (Chrome) 中。上面的代码包含在我在 GitHub 上的 README.md 文件中。浏览器显示损坏的图像图标。
  • 我在 Github 的几乎所有 MD 页面上都有同样的问题:“拒绝加载图像 '',因为它违反了以下内容安全策略指令:“img-src 'self'数据:github.githubassets.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com"。"同时在不同的选项卡中打开图像 url 工作正常。令人困惑的是为什么它可以作为原始 url 正常加载但在 MD 页面中内联失败?最新示例:github.com/PrefectHQ/prefectREADME
  • 感谢您的意见@OskarAustegard。更新:我在我的公司机器和 VPN 上(被认为是问题的一个可能原因),我可以在 GitHub 中查看我所有的嵌入图像。不幸的是,这不是一个答案,但问题已经解决了......现在。 ??????

标签: github amazon-s3 markdown github-flavored-markdown brokenimage


【解决方案1】:

您用于此 URL 的域不正确。您尝试访问域 raw.githubusercontent.com.x.912eb622002e804d2d0bc98027f64e5bb4af.9270fa5c.id.opendns.com 而不是 raw.githubusercontent.com,而 GitHub 的 Content-Security-Policy 标头不允许这样做。

很可能,您所在的网络带有 TLS 中间人设备,该设备正在篡改您的数据。这是不安全的,并且您的浏览器正确地拒绝从该位置加载数据,因为 GitHub 的 Content-Security-Policy 不允许加载该数据。您应该禁用此 TLS 篡改或联系您的网络管理员并告知他们此问题,要求他们及时更正。如果不这样做,就没有办法解决这个问题。

【讨论】:

  • 嘿,@bk2204。我没有尝试通过.x.912... 地址访问内容。我假设这是一个基于我在 .md 文件中的raw.githubusercontent.com 的重定向地址。我不会让它通过我设备上的某种类型的过滤器/防火墙,所以我会在我这边进行调查。
猜你喜欢
  • 2021-05-29
  • 1970-01-01
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 2018-07-02
相关资源
最近更新 更多