【发布时间】:2017-06-05 17:21:34
【问题描述】:
我正在支持使用 JSF(和 JSP)的遗留应用程序。我正在尽我所能通过在代码中添加验证器和转义符来防止 XSS。我是 JSF 的新手。
代码示例(在 xhtml 中):
<h:form id="someForm">
<f:param name="someProperty" value="#{someBean.someProperty}"/>
</h:form>
我的问题 我们的安全扫描器说这很容易受到 XSS 反射的影响。我想为属性值添加转义。
我的研究: 我读过 JSF 通常会自动转义 .它有一个参数,您必须将其设置为 fales 才能禁用它。不过好像没有这个功能。我发现了一个可能有效的建议代码 sn-p:
<f:param name="someProperty" value="#{fn:escapeXml(someBean.someProperty)}"/>
但是,当我使用 fn:escapeXml 时,页面无法加载。这通常是如何解决的?
注意,这是一个重要的遗留应用程序。希望采取最少的规避行动。
【问题讨论】:
-
错误信息是什么?
-
浏览器错误没有用:无法打开localhost:8080/someFile.jsf 我能够在调试模式下从控制台中得到它:原因:javax.el.ELException:函数'fn:escapeXml'不是找到
标签: java jsf parameters xss cross-site