外部图像漏洞

时间:2012-07-21 22:43:13

标签: php image security xss csrf

我的网站上可以通过img标记添加外部图片以及如何避免这些安全漏洞?

我目前只检查提交时的图片的扩展名和mime-type(可以在提交URL后更改)并且URL在将其放入{{1}之前进行清理属性。

3 个答案:

答案 0 :(得分:4)

处于危险之中可能存在差异。

如果您所做的只是存储网址,而不是将图片上传到您的服务器,那么您的网站可能是安全的,并且任何潜在的风险都是您查看网站的用户。

从本质上讲,您信任浏览器制造商的可靠性。 可能的事情没问题,但是如果某个浏览器中的某个浏览器出现涉及错误解析包含恶意代码的图像的问题,那么您的用户最终会为此付费(你可能会发现GIFAR很有意思。)

归结为您是否信任浏览器制造商制作安全软件,以及您是否相信您的用户不会将URL上传到可能包含特定浏览器漏洞的图片。在下一个版本中,现在可能不安全的可能不安全。

答案 1 :(得分:3)

可以暴露的主要漏洞是那些损坏的图像导致浏览器内的缓冲区溢出,允许任意代码执行的漏洞。

如果您只是将图片放入<img>标记,那么不应该是与发送替代MIME类型相关的任何漏洞,但永远不要低估某些网络浏览器开发者的愚蠢...

答案 2 :(得分:3)

很明显,你没有对数据进行任何检查,所以数据可以是任何东西(远程服务器报告的mime类型并不一定说实话)。另外,正如您所说,远程服务器上的数据可以更改,因为您在提交后从未查看过它。

因此,如果链接被放入允许说&lt; img src =“...”/&gt ;,则可以利用浏览器在图像处理中可能存在的任何漏洞。

“清理”URL对任何事情没有帮助:有人提交指向“错误”图像的链接不会攻击他自己的服务器。