6

我的网站上有一个富文本编辑器,我试图保护它免受 XSS 攻击。我想我已经处理了几乎所有事情,但我仍然不确定如何处理图像。现在我正在使用以下正则表达式来验证图像 URL,我假设它会阻止内联 javascript XSS 攻击:

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

我不确定这对来自远程图像的 XSS 攻击有多开放。链接到外部图像是否构成严重的安全威胁?

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

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

4

3 回答 3

4

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

于 2008-10-27T19:03:22.980 回答
2

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

例子:

  • src="http://yoursite.com/deleteuser.xxx?userid=1234"
  • src="http://yoursite.com/user/delete/1234"
  • src="http://yoursite.com/dosomethingdangerous"
于 2008-10-28T05:25:47.297 回答
1

在这种情况下,看看它周围的上下文:用户是否只提供一个 URL?在这种情况下,只需验证 URL 语义和 MIME 类型就可以了。如果用户还可以输入某种类型的标签,则必须确保它们不可被操纵以执行除显示图像之外的任何操作。

于 2008-10-27T19:38:34.690 回答