我试图将消息传递给看起来像这样的Mustache模板:
您提供的网址http://example.com
无效。
用户指定URL,因此需要转义URL。但是我想在网址周围放置<code>
标记,因此它从周围的文本中脱颖而出,因此代码标记需要在不进行转义的情况下传递。
我可以这样写:
{{text_before_url}}<code>{{url}}</code>{{text_after_url}}
但是,消息的内容各不相同,并不总是适合该结构。
我还可以尝试使用三个大括号{{{messages}}}
输出原始文本,并使用类似htmlentities($url)
的内容转义URL,但如果有人稍后调整该程序以传递新消息,并通过在数据中没有意识到它必须被转义,那么我们就陷入了巨大的XSS麻烦。
我可能只是运气不好,而且我理解拥有一个简单的模板引擎的价值,但有一些方法我可以告诉Mustache HTML标签是否正常,同时转出其余的输出?
凯文
答案 0 :(得分:5)
在模板中使用{{variable}} 5&gt; 2将导致5 > 2
,其中使用{{{variable}}}(3个胡须)将导致5 > 2
。