我使用 Handlebars ,如果处理了转义字符(例如'),它将在屏幕上呈现为'

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

我在三重存储中处理了以下字符串,以进行快速测试,这似乎很好:“<p>hello<p>不会&#39; t”这完全显示了我想要的屏幕。

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

谢谢

最佳答案

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

09-30 16:32