我把这篇文章和其他关于在这件事上使用 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,那就太好了。有没有办法做到这一点?
谢谢!