来自Image的跨站点脚本

时间:2008-10-27 18:52:53

标签: security xss

我的网站上有一个富文本编辑器,我正在尝试防范XSS攻击。我想我已经完成了所有处理,但我仍然不确定如何处理图像。现在我正在使用以下正则表达式验证图像URL,我假设它将阻止内联javascript XSS攻击:

"https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+"

我不确定的是,这让我对远程图像的XSS攻击有多开放。链接到外部图像是一个严重的安全威胁吗?

我唯一能想到的是输入的URL引用了一个资源,该资源返回“text/javascript”作为其MIME类型而不是某种图像,然后执行javascript。

这可能吗?我应该考虑其他安全威胁吗?

3 个答案:

答案 0 :(得分:4)

另一件需要担心的事情是,您可以轻松地在图像中嵌入PHP代码并在大多数情况下上传。然后,攻击唯一能够做的就是找到一种方法来包含图像。 (只有PHP代码才能执行,其余的只是回显)。检查MIME类型对此没有帮助,因为攻击者可以轻松地上传具有正确的前几个字节的图像,然后是任意PHP代码。 (HTML和Javascript代码也是如此)。

答案 1 :(得分:2)

如果最终查看者位于受密码保护的区域,并且您的应用包含根据GET请求启动操作的网址,则可以代表用户提出请求。

示例:

  • SRC = “http://yoursite.com/deleteuser.xxx?userid=1234”
  • SRC = “http://yoursite.com/user/delete/1234”
  • SRC = “http://yoursite.com/dosomethingdangerous”

答案 2 :(得分:1)

在这种情况下,请查看它周围的上下文:用户是否只提供URL?在这种情况下,只需验证URL语义和MIME类型即可。如果用户也可以输入某种类型的标签,则必须确保它们不能被操作以执行任何其他操作然后显示图像。