首页 新闻 会员 周边

url 被用户自行转码导致程序无法识别

0
悬赏园豆:10 [已解决问题] 解决于 2014-09-15 00:05

有这么一个url

http://www.xx.com/search/?a=1&b=2&c=3

用户(也许是浏览器)转成了

http://www.xx.com/search/?a=1%26b=2%26c=3

导致服务端无法识别参数。怎么解决。

类似的还有 参数值里边有一些可以转码的字符也存在类似的问题。

 

我是MVC4 ,url 传参。

西安-DB的主页 西安-DB | 初学一级 | 园豆:4
提问于:2014-09-10 08:36
< >
分享
最佳答案
0

1、最好把这个转码关闭,不要出现不可控的转码,否则,你后面会很头痛的。

2、可以使用:Request.QueryString获得所有的参数(a=1%26b=2%26c=3),然后,使用Url.Decode功能解码,再对参数进行读取

3、对QueryString解码后自行分析数据。

收获园豆:10
519740105 | 大侠五级 |园豆:5810 | 2014-09-10 08:44

 请问怎么关闭?

我是MVC ,用 action 参数接受url 参数。现在的问题是无法映射。

西安-DB | 园豆:4 (初学一级) | 2014-09-10 08:48

@西安-DB: 这个要看你的代码。

519740105 | 园豆:5810 (大侠五级) | 2014-09-10 08:50
其他回答(3)
0

乱说,用户怎么自行转码?谁没事儿还去自己改url啊?

吴瑞祥 | 园豆:29449 (高人七级) | 2014-09-10 08:52

   现在这个情况是我们自己人测试搞出来的。

支持(0) 反对(0) 西安-DB | 园豆:4 (初学一级) | 2014-09-10 08:53

@西安-DB: 那就是了.你干嘛要去管这种事情,这种情况只要保证系统安全性就行了.不需要保证体验完整.

因为用户是不可能去将URL修改的,就算他去改你的URL也不可能照着URL编码格式给你改对的.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-09-10 08:56

@吴瑞祥: 老大让把这种情况处理了,我也木有办法。

支持(0) 反对(0) 西安-DB | 园豆:4 (初学一级) | 2014-09-10 08:57

@西安-DB: 你们老大也是傻逼``

a=1%26b=2%26c=3  你跟你老大说,这个要是处理了.那用户想输入a="1%26b=2%26c=3"怎么办?

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-09-10 09:26
0

这是浏览器进行的转码,用post传参呗

GisClub | 园豆:330 (菜鸟二级) | 2014-09-10 09:15
0

urlformat

Firen | 园豆:5385 (大侠五级) | 2014-09-10 13:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册