【发布时间】:2020-02-07 09:53:19
【问题描述】:
我有一个在客户端运行的车把模板,它会在内联 onclick 中呈现变量,如下所示:
<script id="my-handlebars-template" type="text/x-handlebars-template">
<button onclick="console.log('{{name}}');">Click Me!</button>
</script>
此车把模板的上下文来自 ajax 调用。 name 是登录屏幕上的用户输入。我的问题是有人可以通过将他们的名字更改为一些恶意的字符序列来发起 xss 攻击吗?例如,如果name 是);alert('hello,车把模板会运行警报吗?根据我的测试,确实如此。这似乎很容易编写不安全的代码。
这是一个带有测试的 jsfiddle。请注意当您单击链接 );alert('hello 时警报是如何运行的。
http://jsfiddle.net/68tme0hr/1/
【问题讨论】:
标签: javascript security onclick handlebars.js xss