我正在研究安全团队提出的一个问题,即我们表单上的一些输入字段可能存在XSS攻击。我们的freemarker页面包含以下代码。
<#assign zipcode = someObject.getInfo().getZipCodeFirstFive()>
我读了HTML编码,并谈到最后添加?html但我无法在任何地方找到freemarker语法。那么,我可以做点什么吗
<#assign zipcode = (someObject.getInfo().getZipCodeFirstFive())?html>
使输出编码?
答案 0 :(得分:0)
是的,这可能是一种可能的语法,不过我会建议两件事让它更具可读性:
您不需要额外的()
,您只需撰写someObject.getInfo().getZipCodeFirstFive()?html
这与转义无关,但您也不需要写出getter,所以最终会得到someObject.info.zipCodeFirstFive?html
从长远来看,我建议默认转义。在2.3.24之前,通过<#escape x as x?html>...</#escape>
围绕每个模板来完成。从2.3.24开始,推荐的方法是在Configuration
中全局自动转义设置。