我正在构建一个Backbone.js应用程序,并且想知道在使用Backbone.js时处理XSS和HTML转义的最佳方式是什么。Backbone.js和XSS/HTML转义
在官方Backbone.js文档的基本中,数据不会被转义。由于该数据在模板用于呈现待办事项条目,也能够通过输入以下文本执行JavaScript代码(可以在上面的链接被再现):
"><script>alert('xss');</script>
当使用REST服务器作为存储后端,这个XSS对每个用户都是持久的。
你如何解决这个问题?
我的想法是转义服务器上的数据,以便返回的数据安全地在模板中使用。那么我是否必须始终使用wait: true
,以确保未呈现未转义的数据?为了编辑,添加另一个属性与非转义数据,然后可以用来填充文本字段使用.val()
?
还是你没有做到这一点,并在渲染模板之前转义客户端上的数据?
模型的转义函数怎么样? http://backbonejs.org/#Model-escape – eveevans
看起来这个例子现在已经修复了。 –