【发布时间】:2014-12-19 06:45:28
【问题描述】:
我正在测试一些前端代码,我可以看到使用 {{}} 处理程序栏接受输入的代码,所以如果我输入一个 input = &123 ,不应该将其转换为 &123 然后存储在服务器中因为两个双胡子意味着像“&”这样的字符被转义了。当我查看正在发送到服务器的帖子时,它仍然显示为 &123。
【问题讨论】:
标签: ember.js xss handlebars.js html-escape-characters
我正在测试一些前端代码,我可以看到使用 {{}} 处理程序栏接受输入的代码,所以如果我输入一个 input = &123 ,不应该将其转换为 &123 然后存储在服务器中因为两个双胡子意味着像“&”这样的字符被转义了。当我查看正在发送到服务器的帖子时,它仍然显示为 &123。
【问题讨论】:
标签: ember.js xss handlebars.js html-escape-characters
不,{{}} 完成的 HTML 转义只与值如何呈现到 DOM 中有关。使用 {{input}} 输入的字符串不会被 Ember 以任何方式转换,也不应该如此。
一般来说,不希望对保存在 DB 中的信息进行 HTML 转义。 DB中的数据应该是实际数据。当数据在 HTML 上下文中显示时,HTML 转义是应该做的事情,就像 Ember 所做的那样,“在路上”。
如果您真的想在服务器中保留 HTML 转义数据,那么您可以在保存之前在服务器上转义它,或者在 Ember 序列化程序中转义。但是,在检索数据时,您必须在服务器上对其进行转义,或者将其按原样发送到客户端,或者将其转义为反序列化程序,或者记住它已经转义并使用 @ 放入 DOM 987654323@(三把)。
【讨论】: