三方括号XSS在Meteor中安全吗?

三方括号XSS在Meteor中安全吗?,meteor,handlebars.js,meteor-blaze,Meteor,Handlebars.js,Meteor Blaze,我想知道三个花括号是否会对模板中的用户输入进行清理,以确保XSS安全标记不会显示出来,但其他令人毛骨悚然的XSS黑客如何 提前谢谢 这不安全,因为您仍然可以运行恶意代码,如下所示: Template.xx.helpers({ 'bad':function() { return "<a href="#" onclick="alert('compromised');">CLICK ME PLZ!</a>"; } }); Template.xx

我想知道三个花括号是否会对模板中的用户输入进行清理,以确保XSS安全<代码>标记不会显示出来,但其他令人毛骨悚然的XSS黑客如何


提前谢谢

这不安全,因为您仍然可以运行恶意代码,如下所示:

Template.xx.helpers({
    'bad':function() {
        return "<a href="#" onclick="alert('compromised');">CLICK ME PLZ!</a>";
    }
});
Template.xx.helpers({
“坏”:函数(){
返回“”;
}
});
模板

<template name="xx"> {{{bad}}} </template>
{{{bad}}
这意味着用户需要单击按钮,但您可以通过使用其他事件(如onmouseover:

浮动div会占用所有空间&使用鼠标盖确保代码运行。在本例中,该值可用作返回值:

<div style="width:100%; height:100%; position: fixed;" onmouseover="console.log('haha');"></div>


您还可以利用其他漏洞,例如通过CSS更改页面内容(使用
content:
或更高的
z-index
浮动div来更改页面内容。

它们不安全,这正是为什么大多数情况下应该使用双花括号的原因,但双花括号将跳过所有HTML,这在我的使用案例中是不需要的。)如果用户输入之后要进行求值,则应该对其进行清理。例如,使用