gpt4 book ai didi

java - ESAPI 规范化格式错误的 url

转载 作者:行者123 更新时间:2023-11-30 11:19:23 25 4
gpt4 key购买 nike

我们有一个接受用户 URL 的应用程序。此数据需要验证,为此我们正在使用 ESAPI。但是,我们在处理包含 & 符号的 URL 时遇到了困难。

当 ESAPI 在验证之前对数据进行规范化时,就会出现问题。例如,URL 中的 &pid=123 变成 πd=123。由于 π 未列入白名单,因此验证失败。

我试过对其进行编码,但 ESAPI 比这更聪明,并且进行规范化以避免双重编码和混合编码。我在这里有点难过,我不确定如何进行。

最佳答案

我遇到了同样的问题。在我的例子中,对于字符串\fgdf\gghfh\fgh\dff规范化方法将其形成为:

案例 1:规范化(字符串)--> 入侵 - 在\fgdf\gghfh\fgh\dff 中检测到多重 (2x) 编码

案例 2:canonicalize(string, false) --> input=fgdfgghfhfghdff在这种情况下,由于这个 ?字符不是字符白名单的一部分。

我终于设法让它工作了。下面是代码:

    value = ESAPI.encoder().encodeForURL(value);
value = value.replaceAll("", "");
isSafe = validator.isValidInput("APPNAME", value, "URLSTRING", 255, true, false);

最后一个参数 false 关闭默认打开的内部规范化。

希望对您有所帮助。

关于java - ESAPI 规范化格式错误的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23267759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com