防止 JSF 中的 XSS 反射 <f:param>



我正在支持一个使用JSF(和JSP)的遗留应用程序。我正在尽最大努力通过根据需要向代码添加验证器和转义来防止 XSS。我是JSF的新手。

代码示例(在 xhtml 中):

<h:form id="someForm">
<f:param name="someProperty" value="#{someBean.someProperty}"/>
</h:form>

我的问题我们的安全扫描程序说这容易受到XSS反射的攻击。我想向属性值添加转义。

我的研究:我读过 JSF 通常会自动转义 .它有一个参数,您必须设置为 fales 才能禁用此功能。但是,它似乎没有此功能。我找到了一个可能有效的建议代码片段:

<f:param name="someProperty" value="#{fn:escapeXml(someBean.someProperty)}"/>

但是,当我使用 fn:escapeXml 时,页面无法加载。这通常如何解决?

请注意,这是一个关键的旧版应用程序。 需要最少的回避操作。

上述文章:JSF 2.0;escape="false" 替代方法来防止 XSS?

嗯,

这很尴尬。事实证明,我的 xhtml 文件缺少所需的导入:xmlns:fn="http://java.sun.com/jsp/jstl/functions"

我添加了它,它现在似乎可以工作了!

最新更新