我使用 Handlebars ,如果转义字符如 '
处理后在屏幕上呈现为 '
.
我知道将变量包装在三重存储中可以防止这种情况。
我在一个三重存储中处理了以下字符串作为快速测试,看起来很好“<p>hello<p>
不会'
t”这呈现为我想要的屏幕。
我的问题是,简单地将所有变量包装在三重存储中是否安全?或者这会产生一些我没有考虑过的不可预见的后果吗?
谢谢
最佳答案
默认所有双存储 {{var}}
Handlebars 中的嵌入将被 HTML 转义。出于安全原因执行此操作是为了避免 DOM XSS漏洞。因为您的变量可能包含任何数据,包括用户数据或任何类型的不受信任的数据。
在某些情况下,您需要按原样嵌入数据,而不要转义。那里有tripple-stash {{{var}}}
用过的。但是每次执行此操作时,您都需要考虑数据中可能包含的内容并且您可以信任它吗?
阅读更多关于 HTML Escaping在 Handlebars 网站上。
关于encoding - Handlebars 三重存储以避免转义 html 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27926605/