2010-12-13 59 views
0

项目类型是MVC2。假设我有page1。在成功之后,它会编写一些思考行并获取新插入的行ID并重定向到另一个页面并发送行ID作为参数。用户可以在querystring上看到这个参数。并可以改变它。我认为这是在某些情况下(页面)的问题。我使用它隐藏的输入和后检查参数从查询字符串与隐藏的输入值。如果它们不相等,则写入日志并重定向到错误页面。我的方式是否正确。或者有很好的方法。asp.net MVC QueryString

感谢...

回答

3

揭露这样的ID是非常标准的,是什么让的具体项目工作的浏览器书签。您的工作是确保用户只能查看和修改他们应该能够访问的记录。

如果用户进行了一些URL黑客入侵并输入了某个项目的URL,但他们不允许看到或修改,您可以将它们踢回父页面,或者发送Access Denied消息,具体取决于应用程序/上下文。

底线永远不会信任用户输入,包括隐藏的表单参数。

+0

是的,我增加了每个表的字段。这个领域也有一些用户也有的价值。可以说,如果用户在分支952200中注册,他只能看到this.Field.IsEqual(952000)。我做的。你说,在每一个操作中,我必须检查用户是否可以修改这一行。是? – AEMLoviji 2010-12-13 16:02:37

+0

很好的答案。建议隐藏字段的问题是用户也可以修改它,所以这回到了Red所说的:永远不要相信用户输入。 – 2010-12-13 16:02:40

+0

你说编辑首先我必须检查用户是否可以编辑这一行或不。成功保存到数据库后。我是对的? – AEMLoviji 2010-12-13 16:06:58