Encoding Freemarker中的HTML输出编码

Encoding Freemarker中的HTML输出编码,encoding,freemarker,Encoding,Freemarker,我正在处理安全团队提出的一个问题,即表单上的几个输入字段可能受到XSS攻击。我们的freemarker页面有以下代码 <#assign zipcode = someObject.getInfo().getZipCodeFirstFive()> 我读了一些关于HTML编码的文章,最后谈到了添加?HTML,但我在任何地方都找不到freemarker语法。那么,我能做些类似的事情吗 <#assign zipcode = (someObject.getInfo().getZipC

我正在处理安全团队提出的一个问题,即表单上的几个输入字段可能受到XSS攻击。我们的freemarker页面有以下代码

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

我读了一些关于HTML编码的文章,最后谈到了添加?HTML,但我在任何地方都找不到freemarker语法。那么,我能做些类似的事情吗

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


要使其输出编码?

是的,这可能是一种语法,不过我建议使用两种方法使其更具可读性:

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

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


从长远来看,我建议默认退出。在2.3.24之前,通过
围绕每个模板来完成。从2.3.24开始,推荐的方法是全局设置自动转义,在
配置中

我没有一个环境来尝试此功能,这就是为什么我必须在这里发布此功能。实际上,您确实有一个环境来尝试此功能:谢谢。我只是向一位同事展示了我的解决方案,他说这不是正确的方法。他说我是在场地准备好的地方做的。相反,我应该在所有打印到页面上的页面上都这样做。我现在有点困惑。在这里展示的示例中,您正在逃避打印值的位置,这也是您的同事所希望的。矛盾在哪里?是的,我们现在在同一页:)非常感谢你的帮助!