Java允许XSS过滤器的例外

时间:2012-09-04 13:48:00

标签: java jstl xss

我红色this post和其他人在此问题上使用JSTL。

我的问题有点不同。我们的一项功能允许用户在评论中编写哈希标记。

每当列出评论时,服务器脚本都会将#fooHastag变为<a href='tag?fooHashtag'>#fooHashtag</a>

然后使用JSTL在GUI上监听所有注释:

<c:forEach items="${comments}" var = "comment">
    ${fn:escapeXml(comment)}
</c:forEach

正如所料,这段代码也逃脱了服务器上构建的哈希链接。如果删除fn:escapeXml,则应用程序将不再安全。

你对此有什么想法吗? (除了手动构建一个xss过滤器之外)如果我能够在转换主题标签之前在服务器上使用JSTL的escapeXml,那将会很棒。有没有办法做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

解决问题的一些方法:

  • 在添加标签之前转义。使用一个像样的html编码器而不是escapeXml(HTML甚至不是XML)

  • 添加标签,然后运行owasp antisamy。没有逃脱

  • 将标记移动到链接功能为javascript。