Java ESAPI实现

时间:2017-12-21 17:29:08

标签: filter xss owasp esapi

我有一个关于用于xss保护的owasp ESAPI接口的问题。为了保持简单而简单,我正在使用fortify进行源代码审查。 应用程序实现ESAPI并调用ESAPI.encoder()。canonicalize(用户输入)并且不进行任何进一步的验证并打印输出。这仍然容易受到xss的攻击 PS:反射点位于html元素内。 我已经浏览了有关堆栈溢出中有关ESAPI接口的所有帖子,但是无法完全理解它 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

canonicalize根本不会阻止xss。它解码数据,但你想要相反,对数据进行编码。

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

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

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