Meteor中的三重支架XSS安全吗?
答
它不是安全的,因为你仍然可以运行恶意代码,如:
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改变页面的内容
他们是不安全的,这正是为什么你应该在大部分时间使用双括号的方式 – imslavko 2015-02-12 00:12:33
但是双括号将会转义所有的HTML,这在我的用例中是不需要的;; – wtfzn 2015-02-12 08:07:22
如果事后要评估,你应该清理用户输入。例如,https://atmospherejs.com/djedi/sanitize-html – avalanche1 2015-11-27 08:19:15