没有迷彩的 Github 图像

mat*_*otu 11 github

我有一个自托管的 SonarQube 实例,位于代理后面。

我想在我的私人 GitHub 存储库的 readme.md 中包含这些徽章。此存储库仅供代理背后的个人访问,因此他们在查看图像时不会遇到问题。

但是,GitHub 正在将它们转换为https://camo.githubusercontent.com/blahblahblah. 这些都呈现为损坏的图像,检查控制台 camo.githubusercontent.com 是否为我的图像返回 404,大概是因为 camo 看不到图像。

我知道 Github 这样做是出于匿名和缓存的原因,但这很烦人。在线搜索揭示了 GitHub 在这方面的行为令人沮丧,但这主要是针对过度缓存,解决方案似乎是由图像提供者设置标题。但是,我们不想将图像公开给 camo.githubusercontent.com 或其他任何人。

我尝试使用 Markdown 格式和 <img src=""> 添加图像,但没有骰子。

我们如何让 GitHub 提供 GitHub 看不到但客户端可以看到的图像?

bk2*_*204 15

任何以 GitHubREADME.md文件(或其他呈现的 HTML 格式)呈现的图像都将使用 camo 呈现。有几个原因。一个是性能:GitHub 为大量用户提供服务,如果不这样做,页面加载时间会很糟糕。另一个是隐私:让回购所有者嵌入跟踪图像是不可接受的。最后,还有 DDoS 角度:在外部托管图像允许恶意存储库所有者拥有相当流行的存储库,只需加载其中一个图像即可对他们选择的任何站点进行 DDoS 攻击。

没有办法禁用迷彩,因为它内置在渲染管道中。它不是特定于 Markdown 的;它也适用于原始 HTML 文件、AsciiDoc 和任何其他生成 HTML 的文件。您可以通过链接或以其他方式使用链接或以某种方式通过data:URL提供某种仪表板,但除此之外,就图像而言,如果它作为文件内容的一部分呈现,它将通过迷彩。

即使您可以以某种方式欺骗渲染管道以允许未经代理的图像通过,Content-Security-Policy标头也会阻止它在您的浏览器中渲染,并且您的浏览器会将其报告为 GitHub 安全违规。