代理外部映像以实现SSL合规性

时间:2013-11-12 15:45:24

标签: django ssl nginx hotlinking

我有一个小的Django网站,用户可以链接到其他网站上的图片。它绝不是核心功能。

我刚将整个网站移至SSL。这在大多数情况下都运行良好,但远程图像显然并不总是可以通过SSL获得。只有最轻微的域名拥有有效证书。

通过那时漏斗图像的最佳方式是什么?

  • 当用户发布并将URL更改为本地URL时,请下载它们吗?
  • 创建一个只代理其他网址的代理?

第二个似乎不那么重要了(我觉得只有NGINX规则才有可能)但是它也会打开网站直到人们使用我的代理来获取他们自己的邪恶......我想要避免。

这里最好的妥协是什么?

1 个答案:

答案 0 :(得分:2)

Github遇到了同样的问题,当他们到处移动到HTTPS并在他们的博客中详细说明:https://github.com/blog/743-sidejack-prevention-phase-3-ssl-proxied-assets

他们的解决方案是创建一个代理服务器,他们打开来源https://github.com/atmos/camo为了解决滥用代理的相同问题,它与应用服务器共享秘密。整合这个将是一个Django项目将是直接的,因为您只需要从给定图像URL的共享密钥生成摘要。