Meteor中的三重支架XSS安全吗?

Meteor中的三重支架XSS安全吗?

问题描述:

我不知道是否三重大括号将模板中的用户输入清理为XSS安全。 <script>标签不会渲染出来,但其他令人毛骨悚然的XSS黑客怎么样?Meteor中的三重支架XSS安全吗?

在此先感谢!

+0

他们是不安全的,这正是为什么你应该在大部分时间使用双括号的方式 – imslavko 2015-02-12 00:12:33

+0

但是双括号将会转义所有的HTML,这在我的用例中是不需要的;; – wtfzn 2015-02-12 08:07:22

+0

如果事后要评估,你应该清理用户输入。例如,https://atmospherejs.com/djedi/sanitize-html – avalanche1 2015-11-27 08:19:15

它不是安全的,因为你仍然可以运行恶意代码,如:

Template.xx.helpers({ 
    'bad':function() { 
     return "<a href="#" onclick="alert('compromised');">CLICK ME PLZ!</a>"; 
    } 
}); 

模板

<template name="xx"> {{{bad}}} </template> 

这意味着用户需要点击的按钮,但你可以使它通过使用其他事件,如onmouseover更确切的事情:

一个浮动div可以占用所有空间&使用鼠标悬停来确保代码运行。这可以作为在这个例子中,返回值:

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

您还可以有其他的攻击,例如通过CSS改变网页内容(使用content:或更高z-index浮动的div改变页面的内容