车把三重隐藏以避免转义 html 个实体

Handlebars triple-stash to avoid escaping html entities

我使用 handlebars,如果处理 ' 等转义字符,它会在屏幕上呈现为 '

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

我在三重存储中处理了以下字符串作为快速测试,它看起来很好“<p>hello<p>wouldn't wouldn't wouldn&#39;t”这完全按照我想要的方式呈现到屏幕上.

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

谢谢

默认情况下,Handlebars 中所有双重隐藏的 {{var}} 嵌入都将被 HTML 转义。出于安全原因执行此操作以避免 DOM XSS 漏洞。因为您的变量可能包含任何数据,包括用户数据或任何类型的不受信任的数据。

在某些情况下,您需要按原样嵌入数据,而不进行转义。那里使用了 tripple-stash {{{var}}}。但每次这样做时,您都需要思考 您的数据中可能包含什么,您可以信任它吗?

在 Handlebars 网站上阅读有关 HTML Escaping 的更多信息。