8

我们有一个系统可以发送带有链接的常规电子邮件,其中许多包含 URL 编码参数,例如:

href="http://www.mydomain.com/login.aspx?returnurl=http%3A%2F%2Fwww.mydomain.com%2Fview.aspx%3Fid%3D1234%26alert%3Dtrue"

可以看到“returnurl”参数被编码了。但是,似乎我们的大量用户(似乎是 hotmail)正在接收带有此参数部分解码的电子邮件,例如:

href="http://www.mydomain.com/login.aspx?returnurl=http://www.mydomain.com/view.aspx?view.aspx%3Fid%3D1234%26alert%3Dtrue"

为什么会这样解码?为什么只部分解码??因此,我不知道如何处理它。我想到了base-64编码,但是base64字符串也包含需要解码的字符...我想到了双重编码,但是我不知道是否对参数进行双重解码...有人可以帮忙吗?谢谢。

4

1 回答 1

0

发生这种情况的一个原因是因为用于编码的 url 规则在之前和之后是不同的, ?所以如果进行解码的机制从 url 的“后部”进行解码,并且苹果查询解码规则直到它首先找到,?那么这可能会导致您描述的问题...

不知道如何处理它,但据我了解,执行这种不适当解码的系统超出了您的控制范围。我会尝试以?某种方式隐藏返回 url 查询......

于 2016-09-07T14:37:25.647 回答