1

我在一个项目中工作,我们在 Web 应用程序中使用 MVC 模式。我们的观点是 JSP 的。我问自己的问题:有时我可以看到 JSP,其中 JSTL (c:out) 用于将字符串转义为 HTML 以防止 XSS 攻击,有时是 apache commons 类/方法 StringEscapeUtils.escapeHtml4。

我查看了这个 Apache 类/方法的来源,发现与使用 c:out 相比,有更多的字符会被转义(据我所知,只有五个字符会被转义/替换:>, <、'、''、&)。

是否有任何理由支持 StringEscapeUtils 静态辅助方法而不是JSP中的 JSTL c:out 函数?

如果不是:我目前对这两种方法如何工作的理解是一种方法比另一种方法转义更多字符。但是这种不同行为的原因是什么?为什么我只在视图中使用一种方法,而另一种方法在例如控制器中替换更多字符?还是我完全糊涂/弄错了?

StringEscapeUtils 源码

4

0 回答 0