我只需要在GET上解析URL Request.Querystrings,而不是回发,对吗?
if(!IsPostBack)
{
Viewstate["magic_number"] = Parse(Request.Query);
}
不能指望用户修改请求后续回发中的URL,还是可以?
问题的动机 - 我不控制回发的javascript片段,所以对我来说这是黑盒子。
答案 0 :(得分:2)
网址不预计会发生变化。但请记住,每个回发都是页面类的新实例。因此,如果您没有将结果保存在第一个视图的某个位置,则需要准备好在下一个视图上再次执行此操作,依此类推。在这种情况下,您将其保存到ViewState,因此应该没问题。
但是,我怀疑你不会问这个问题,除非你观察到导致你怀疑的行为。所以让我们暂时考虑一下可能导致这种情况发生的原因:
然而,对于所有这些事情,你肯定会知道你是否已经写了任何东西。
答案 1 :(得分:1)
您的假设是正确的,预计不会在后续回发中修改URL,您只需要在GET上解析查询字符串,这在第一次加载页面时就会发生。
答案 2 :(得分:1)
对于回发,网址通常不会更改。
当然可以使用像FireBug这样的工具在回发之前编辑表单标记中的URL,但是你可能不希望用户注入的值仍然是原始值。
答案 3 :(得分:0)
正如其他人所指出的那样,URL预计不会改变。当然,如果我们生活在一个完美的世界,你将永远不会收到垃圾邮件,也没有人会试图对你的网站做任何恶意的事情。
在现实世界中,你应该期望恶意的人会试图劫持你的网站,并且需要关注injection attacks
等事情。您应该从不做出任何假设,即回发上收到的数据是有效的。