源图像和安全性

3
如果我允许用户插入链接到他们自己主机的图像,我需要防止任何安全问题吗?
更好地解释一下,在哪些情况下会使我的网站容易受攻击?

1
使你的网站易受攻击,还是让访问者浏览你的网站? - Jared Farrish
2个回答

5
允许任意图像URL的一个潜在问题是图像的主机可以跟踪所有的查看和IP地址。在流量较小的论坛中,这可能使图像主机能够识别特定用户的IP地址。另一个问题是您无法控制图像中显示的内容。图像资源可以是动态的,并在任何给定时间向任何用户显示几乎任何内容。然后还有非常遥远的风险,即图像利用访问者浏览器或图像库中的漏洞。但这些情况极为罕见,很可能会被快速修复 - 我自己只知道一个例子发生在更大规模上的情况。具有广泛影响力和流量的Stack Overflow仍然允许外部图像 - 从中我倾向于推断风险相对可控。不过,如果您想确保,最好获取图像资源,使用图像库复制它(以确保它是真实的图像并剥离任何敏感元数据),并将其存储在您的服务器上。

我会担心SVG图像和data:... URLs中的XSS问题。 - Pierre Ernst

3

如果你在标记中进行简单的字符串插入,有人可能会关闭图像标签并开始一个脚本标签或类似的操作。因此,你应该注意用户以任何形式设置此图像src属性时是否存在脚本注入。

例如,如果图像src设置为以下内容:

myimagefile.jpg" /><script> ... </script>

你可以看到这将完全消除图像选项卡并开始在脚本标记中执行其他操作。在保存并开始在实时页面上编写之前,您需要确保他们输入的内容实际上指向一张图片。
例如,这种脚本注入风格可以从页面上的表单中读取(可能包括个人信息、登录详细信息或会话ID),并使用jsonp将最终用户信息发送回某些恶意黑客数据收集点。

好的建议 - 在图像 URL 上运行 htmlentities() 很重要。 - Pekka
myimagefile.jpg" onload=alert(1) a=" 更好,因为它不需要尖括号。;) - rook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接