有没有一种安全的方法来缓存和调整PHP的远程图像?

时间:2011-11-14 07:13:04

标签: php image security

我正在使用SimplePie开发RSS阅读器。

我希望使用缩略图来提取RSS源和显示文章。我正在使用RSS Enclosures,稍后将解析RSS< items>对于< img>的。

有没有一种安全的方法可以将这些远程图像下载到我的服务器上,以便我可以缓存它们并调整它们的大小?

我对如何使用cURL做了一些想法,但我对安全感兴趣。我知道我可以通过文件扩展名进行限制,我可以查看MIME类型,但我只是想知道这是否可行/安全。如果是这样,应该采取哪些措施来确保没有漏洞。

2 个答案:

答案 0 :(得分:2)

使用gdimagemagick

调整图片大小

或者你可以这样做看看以下Link

答案 1 :(得分:0)

可靠的安全问题:

  • 执行远程脚本。不知何故,你下载一个PHP脚本而不是一个图像,服务器在以后调用这个图像时执行它。

解决方案:在任何Web服务器中,您都可以配置上载目录,这样就不会在那里执行任何脚本。并且不要忘记为图像添加适当的扩展(最好从列表中选择,不要相信mime类型)。

  • 客户端阅读RSS的XSS。你下载一个图像。但它本身就是一个javascript。

解决方案:确保在<img src"...">标记中插入此imgae的链接。脚本不会从img标签执行。此外,通过GD或Imagic调整图像大小将会破坏内部的任何js,如果有的话。