三括号 XSS 在 Meteor 中安全吗?
Are triple brackets XSS safe in Meteor?
我想知道三重大括号是否会净化模板中的用户输入以保证 XSS 安全。 <script>
标签不会呈现出来,但是其他令人毛骨悚然的 XSS 黑客呢?
提前致谢!
它不安全,因为您仍然可以 运行 恶意代码,例如:
Template.xx.helpers({
'bad':function() {
return "<a href="#" onclick="alert('compromised');">CLICK ME PLZ!</a>";
}
});
模板
<template name="xx"> {{{bad}}} </template>
这意味着用户需要点击按钮,但您可以通过使用其他事件(例如 onmouseover)使它更加确定:
浮动 div 可以占用所有 space 并使用鼠标悬停以确保代码为 运行。这可以用作此示例中的 return 值:
<div style="width:100%; height:100%; position: fixed;" onmouseover="console.log('haha');"></div>
您还可以进行其他利用,例如通过 CSS 更改页面内容(使用 content:
或更高 z-index
浮动 divs 来更改页面内容。
我想知道三重大括号是否会净化模板中的用户输入以保证 XSS 安全。 <script>
标签不会呈现出来,但是其他令人毛骨悚然的 XSS 黑客呢?
提前致谢!
它不安全,因为您仍然可以 运行 恶意代码,例如:
Template.xx.helpers({
'bad':function() {
return "<a href="#" onclick="alert('compromised');">CLICK ME PLZ!</a>";
}
});
模板
<template name="xx"> {{{bad}}} </template>
这意味着用户需要点击按钮,但您可以通过使用其他事件(例如 onmouseover)使它更加确定:
浮动 div 可以占用所有 space 并使用鼠标悬停以确保代码为 运行。这可以用作此示例中的 return 值:
<div style="width:100%; height:100%; position: fixed;" onmouseover="console.log('haha');"></div>
您还可以进行其他利用,例如通过 CSS 更改页面内容(使用 content:
或更高 z-index
浮动 divs 来更改页面内容。