首页 > 解决方案 > GitHub README 图片损坏 - “违反以下内容安全策略指令:“img-src 'self'”

问题描述

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)

标签: githubamazon-s3markdowngithub-flavored-markdownbrokenimage

解决方案


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

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


推荐阅读