Hotmail搞乱了编码的URL参数

Shi*_*yUK 8 email hotmail url-encoding

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

href="http://www.mydomain.com/login.aspx?returnurl=http%3A%2F%2Fwww.mydomain.com%2Fview.aspx%3Fid%3D1234%26alert%3Dtrue"
Run Code Online (Sandbox Code Playgroud)

您可以看到"returnurl"参数已编码.但是,似乎我们的大量用户(看似hotmail)正在接收带有此部分解码的电子邮件,部分解码如下:

href="http://www.mydomain.com/login.aspx?returnurl=http://www.mydomain.com/view.aspx?view.aspx%3Fid%3D1234%26alert%3Dtrue"
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ius 0

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

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