首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ESAPI规范化畸形形成url

ESAPI规范化畸形形成url
EN

Stack Overflow用户
提问于 2014-04-24 11:35:10
回答 2查看 8.9K关注 0票数 2

我们有一个接受用户URL的应用程序。这些数据需要验证,为此我们使用了ESAPI。然而,我们正在与包含符号的URL进行斗争。

当ESAPI在验证之前将数据规范化时,就会出现问题。例如,URL中的&pid=123就变成了πd=123。由于π未被白化,验证失败。

我尝试过对它进行编码,但ESAPI比它更聪明,并进行规范化,以避免双重编码和混合编码。我有点为难,我不知道该怎么做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-11 22:32:22

这个问题是ESAPI中的一个已知臭虫。我开始着手解决这个问题,但是由于我不知道什么时候会提交补丁,所以我只能在我的评论中向OP推荐一个解决办法,在这里我链接了一个类似的答案,使用java.net.URIjavax.ws.rs.core.UriBuilder解析/分解URL,规范化这些片段,然后重构这个URL。我将重新发布链接这里。我提出的例子是在操作转换话题后的问题的后半部分。

票数 0
EN

Stack Overflow用户

发布于 2014-04-28 15:14:42

我也面临着同样的问题。在我的示例中,对于string \fgdf\gghfh\fgh\dff,规范化方法将如下所示:

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

案例2:规范化( string,false) -> input=fgdfgghfhfghdff,在本例中,它在字符串验证中失败了吗?字符不是字符白列表的一部分。

我终于成功了。以下是代码:

代码语言:javascript
复制
    value = ESAPI.encoder().encodeForURL(value);
    value = value.replaceAll("", "");
    isSafe = validator.isValidInput("APPNAME", value, "URLSTRING", 255, true, false);

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

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23267759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档