我了解 ESAPI 的用途,但我看到在很多 ESAPI 示例中重复这两行。有人可以解释一下这到底是做什么的吗?
ESAPI.encoder().canonicalize(inputUrl,false,false);
请参阅文档:
规范化只是将可能编码的字符串简化为最简单形式的操作。这很重要,因为攻击者经常使用编码以绕过验证过滤器的方式更改其输入,但仍能被攻击目标正确解释。请注意,多次编码的数据不是普通用户会生成的,应视为攻击。
在您的示例中设置为 false 的两个附加参数分别指示是否限制多重编码和混合编码(有关含义,请参见文档)。