0

把这篇文章和其他关于在这件事上使用 JSTL 的文章都加红了。

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

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

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

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

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

您对解决此问题有任何想法吗?(除了手动构建 xss 过滤器)如果我能够escapeXml在转换主题标签之前以某种方式在服务器上使用 JSTL,那就太好了。有没有办法做到这一点?

谢谢!

4

1 回答 1

1

解决它的一些方法:

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

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

  • 移动标签以将功能链接到 javascript。

于 2012-09-05T04:51:43.537 回答