首页 新闻 会员 周边 捐助

ASP.NET 对于重复 URL 参数处理有什么好办法?

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-06-25 09:10

我们的网站上经常有一些访问链接上有重复的 URL 参数,如:Search.aspx?date=20150701&edate=20150801&date=20150701&edate=20150801&hide=0 这样的,后台接收到参数值就不是一个有效的时间格式。

我尝试去通过 NameValueCollection 解决没有成功,想问下大家是怎么解决的。

Charles Zhang的主页 Charles Zhang | 初学一级 | 园豆:38
提问于:2015-06-24 17:20
< >
分享
所有回答(4)
0

链接里怎么会有2个一样的参数名而带着不同的值呢?这种情况怎么发生的?带参数的时间我们函数里可以使用字符串的格式接受,然后下一步可以将字符串转换成时间格式。

大楚打码人 | 园豆:4313 (老鸟四级) | 2015-06-24 17:42

这些参数是别的系统做的固定链接跳转导致的。

 

 

支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2015-06-24 20:51
0

querystring重复的键名传参是不正确的,解析不出来就给一个默认值或者直接拒绝服务。

实际上碰到参数非法的情况,应该早点把问题暴露出来,因为这种情况很可能是程序bug或者恶意攻击。

JeffWong | 园豆:2328 (老鸟四级) | 2015-06-24 17:49

这些参数是别的系统做的固定链接跳转导致的。

支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2015-06-24 20:50
0

不能从源头解决, 那你就只能用正则去取值了。 

奋奋奋 | 园豆:32 (初学一级) | 2015-06-24 18:25

嗯,我只把符合格式的处理了,其他格式的直接不处理了。

支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2015-06-24 20:50
0

提交数据时就应该对同名参数重新赋值~而不是直接拼接querystring~

NetRube | 园豆:277 (菜鸟二级) | 2015-06-24 20:47

别人访问来的链接怎么控制?

支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2015-06-24 20:49

@Charles Zhang: 这么低级的错误就直接返回错误吧~让他们去改正~总不能他们发“贰零壹伍年柒月壹日”你也要适配吧~

支持(0) 反对(0) NetRube | 园豆:277 (菜鸟二级) | 2015-06-27 18:30

@Charles Zhang: 要不然就把Request.QueryString的值转存到Dictionary里~重复的就保存最后的~

支持(0) 反对(0) NetRube | 园豆:277 (菜鸟二级) | 2015-06-27 18:34

@NetRube: 嗯,我已经把不合法的参数抛出了

支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2015-06-29 11:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册