Freemarker中的HTML输出编码

时间:2016-03-23 23:24:34

标签: encoding freemarker

我正在研究安全团队提出的一个问题,即我们表单上的一些输入字段可能存在XSS攻击。我们的freemarker页面包含以下代码。

<#assign zipcode = someObject.getInfo().getZipCodeFirstFive()>

我读了HTML编码,并谈到最后添加?html但我无法在任何地方找到freemarker语法。那么,我可以做点什么吗

<#assign zipcode = (someObject.getInfo().getZipCodeFirstFive())?html>

使输出编码?

1 个答案:

答案 0 :(得分:0)

是的,这可能是一种可能的语法,不过我会建议两件事让它更具可读性:

  • 您不需要额外的(),您只需撰写someObject.getInfo().getZipCodeFirstFive()?html

  • 这与转义无关,但您也不需要写出getter,所以最终会得到someObject.info.zipCodeFirstFive?html

从长远来看,我建议默认转义。在2.3.24之前,通过<#escape x as x?html>...</#escape>围绕每个模板来完成。从2.3.24开始,推荐的方法是在Configuration中全局自动转义设置。