encoding - Handlebars 三重存储以避免转义 html 实体

标签 encoding handlebars.js

我使用 Handlebars ,如果转义字符如 '处理后在屏幕上呈现为 ' .

我知道将变量包装在三重存储中可以防止这种情况。

我在一个三重存储中处理了以下字符串作为快速测试,看起来很好“<p>hello<p> 不会&#39; t”这呈现为我想要的屏幕。

我的问题是,简单地将所有变量包装在三重存储中是否安全?或者这会产生一些我没有考虑过的不可预见的后果吗?

谢谢

最佳答案

默认所有双存储 {{var}} Handlebars 中的嵌入将被 HTML 转义。出于安全原因执行此操作是为了避免 DOM XSS漏洞。因为您的变量可能包含任何数据,包括用户数据或任何类型的不受信任的数据。
在某些情况下,您需要按原样嵌入数据,而不要转义。那里有tripple-stash {{{var}}}用过的。但是每次执行此操作时,您都需要考虑数据中可能包含的内容并且您可以信任它吗?
阅读更多关于 HTML Escaping在 Handlebars 网站上。

关于encoding - Handlebars 三重存储以避免转义 html 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27926605/

相关文章:

javascript - 使用 System.js,为什么我对一个文件中的模块所做的更改会保留在另一个文件中?

javascript - 渲染时 Handlebars 部分打印 [Object object]

json - 如何配置 F# JSON 类型提供程序以对 POST 请求使用 UTF-8?

c++ - 简化字符串编码答案中的 C++ 表达式

OWASP ESAPI 的 Java bean 验证替代方案

javascript - 使用handlebars.js时创建新的 Bootstrap 行

javascript - #collection 使用 contentBinding 在 tbody 中渲染时不会自动更新

javascript - EmberJS 是否有在 Handlebars-view 更新后调用的事件?

encoding - 为什么base64编码的字符串末尾有=号

java - Eclipse启动和ant启动以不同的编码生成文件