【问题标题】:Prevent XSS Reflection in JSF <f:param>防止 JSF <f:param> 中的 XSS 反射
【发布时间】: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 时,页面无法加载。这通常是如何解决的?

注意,这是一个重要的遗留应用程序。希望采取最少的规避行动。

上述文章: JSF 2.0; escape="false" alternative to prevent XSS?

【问题讨论】:

  • 错误信息是什么?
  • 浏览器错误没有用:无法打开localhost:8080/someFile.jsf 我能够在调试模式下从控制台中得到它:原因:javax.el.E​​LException:函数'fn:escapeXml'不是找到

标签: java jsf parameters xss cross-site


【解决方案1】:

这很尴尬。 结果是我的 xhtml 文件中的一个缺少所需的导入: xmlns:fn="http://java.sun.com/jsp/jstl/functions"

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多