如何解决是否可以让GitHub自述文件映像遵循重定向?
我正在尝试向GitHub上的私有存储库的自述文件添加测试覆盖率徽章。我们的持续集成过程将映像保存到公众无法访问的安全的Google Cloud Storage存储桶中,应保持这种状态。
Google的授权层足够聪明,如果我转到图像的URL,则会使用有效的自动生成的签名URL自动重定向到资源。
例如,如果我转到http://storage.cloud.google.com/secret-files/mysecretfile.png
,那么如果我登录并允许查看它,我将自动重定向到类似https://blahblah-apidata.googleusercontent.com/download/storage/v1/b/secret-files/o/mysecretfile.png?key=verylongkey
的地方,可以在其中加载图像。 / p>
这似乎很完美。请参考GitHub自述文件中的规范路径,经过身份验证的用户可以看到该图像,未经身份验证的用户仍被阻止,我们不必将文件公开,也不必做任何复杂的事情。
除了GitHub正在代理图像请求外,这意味着它将始终未经身份验证。我的浏览器正在加载类似https://camo.githubusercontent.com/mysecretimage.png
的内容。
是否有解决此问题的聪明方法?还是我需要回到绘图板上?
解决方法
github.com上的所有图像都使用Camo图像代理进行代理。造成这种情况的原因有两个:
- 它保留了用户的隐私。文档不可能通过将用户定向到其他站点或使用cookie来跟踪用户。
- 这意味着可以缓存图像并以适当的大小进行投放。
- GitHub可以具有非常严格的内容安全策略,不允许从不受信任的站点进行加载,这意味着任何意外的安全问题(例如XSS)都不太可能起作用。
请注意最后一部分。即使您发现了一些偷偷摸摸的方法来获取另一个图像URL以便在网站中正确呈现,您的浏览器也不会加载它,因为它违反了该网站发送的Content-Security-Policy
标头,此外,您的浏览器还会对此进行尝试GitHub提供的报告URL。
因此,您提供的任何图像URL将需要由GitHub的图像代理读取,并且无法为不同的用户提供不同的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。