这个MustacheJS-Snippen是否可以安全抵御XSS攻击?

时间:2016-11-16 16:41:23

标签: javascript jquery html xss mustache

我有一个带有以下图像的MustacheJS模板:

<div class="thumbnail" style='background-image: url({{avatar}});'></div>

{{avatar}}变量从用户输入填充而无需验证,用户可以输入他们想要的任何内容。

这是安全的,还是有人可以传递一些邪恶的输入并通过它执行XSS?

1 个答案:

答案 0 :(得分:0)

我认为样式XSS在现代浏览器中不再起作用(IE11 / Edge,最近的Chrome或Firefox都不会从CSS运行JS)。

所以它也取决于浏览器版本,但即使它不是最好的做法,也不会直接提出实际有效的攻击(我对那里的措辞非常谨慎,它可能不可能在最近的浏览器中利用它)。更重要的是,正如您在评论中所展示的那样,Mustache html会自动对某些字符进行编码。

请注意,IE可以切换到与X-UA-Compatible兼容的模式,在这种情况下,它的行为与选择的版本完全一样,具有所有版本的漏洞,但由于html编码,它可能仍然无法利用。