Java ESAPI 实施

Java ESAPI IMPLEMENTATION

我有一个关于 xss 的 owasp ESAPI 接口的问题 protection.To 简单明了 我正在使用 fortify 进行源代码审查。 应用程序实现 ESAPI 并调用 ESAPI.encoder().canonicalize(user input) 并且不做任何进一步的验证并打印输出。这仍然容易受到 xss 攻击吗 PS:反射点在html元素内。 我浏览了堆栈溢出中有关 ESAPI 接口的所有帖子,但不太明白 任何帮助将不胜感激

canonicalize 本身并不能阻止 xss。它解码数据,但你想要相反的东西,对数据进行编码。

它不仅允许 <script>alert(1)</script> 等内容直通,而且还将 &lt;script&gt;alert(1)&lt;/script&gt; 从不可执行脚本解码为可执行脚本。

您想要的方法是 encodeForHTML。这将对数据进行编码,以便它可以安全地插入到 HTML 上下文中,因此 < 将变为 &lt; 等等。

此外,通过检查这些字符是否被接受来检查您是否已经在进行 HTML 编码。一些模板语言和标签会自动编码。