逃脱输入的把手?

时间:2014-12-19 06:45:28

标签: ember.js xss handlebars.js html-escape-characters

我正在测试一些前端代码,我可以看到使用{{}}处理程序栏输入的代码,所以如果我输入了一个输入=& 123,那么这不应该转换为& amp123然后存储在服务器中,因为两个小胡子意味着像'&'这样的字符被逃脱了。当我查看发送到服务器的帖子时,它仍显示为& 123。

1 个答案:

答案 0 :(得分:5)

不,{{}}完成的HTML转义只与如何将值呈现到DOM中有关。使用{{input}}输入的字符串不会被Ember以任何方式转换,也不应该转换。

通常,人们不希望在DB中保存HTML转义信息。 DB中的数据应该是实际数据。当数据在HTML上下文中显示时,正如Ember所做的那样,HTML转义是应该完成的事情。

如果您确实希望在服务器中保留HTML转义数据,那么您可以在保存之前或者在Ember序列化程序中将其转发到服务器上。但是,在检索数据时,您必须在服务器上取消它,或者按原样将其发送到客户端,或者取消它是解串器,或者记住它已经被转义并使用{放入DOM {1}}(三把手)。