Asp.net mvc 2 asp.net MVC查询字符串

Asp.net mvc 2 asp.net MVC查询字符串,asp.net-mvc-2,Asp.net Mvc 2,项目类型为MVC2。假设我有第1页。成功后,它将somethink写入行并获取新插入的行id,重定向到另一个页面,并将行id作为参数发送。用户可以在querystring上看到这个参数。并且可以改变它。我认为在某些情况下这是个问题。我为它使用一个隐藏的输入,并在使用隐藏的输入值对查询字符串进行后期检查后使用参数。如果它们不相等,则写入日志并重定向到错误页面。我的方式是正确的。还是有个好办法 谢谢…像这样公开ID是非常标准的,并且是让浏览器对特定项目进行书签的功能。您的工作是确保用户只能查看和修改

项目类型为MVC2。假设我有第1页。成功后,它将somethink写入行并获取新插入的行id,重定向到另一个页面,并将行id作为参数发送。用户可以在querystring上看到这个参数。并且可以改变它。我认为在某些情况下这是个问题。我为它使用一个隐藏的输入,并在使用隐藏的输入值对查询字符串进行后期检查后使用参数。如果它们不相等,则写入日志并重定向到错误页面。我的方式是正确的。还是有个好办法


谢谢…

像这样公开ID是非常标准的,并且是让浏览器对特定项目进行书签的功能。您的工作是确保用户只能查看和修改他们应该能够查看和修改的记录

如果用户进行了一些URL黑客攻击,并输入了一个他们不允许查看或修改的项目的URL,您可以将其返回到父页面,或者根据应用程序/上下文给出一条
拒绝访问的消息


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

像这样公开ID是相当标准的,并且是允许浏览器对特定项目进行书签的原因。您的工作是确保用户只能查看和修改他们应该能够查看和修改的记录

如果用户进行了一些URL黑客攻击,并输入了一个他们不允许查看或修改的项目的URL,您可以将其返回到父页面,或者根据应用程序/上下文给出一条
拒绝访问的消息


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

是,我在每个表中添加了字段。此字段具有用户也具有的某些值。假设用户在分支952200中注册,他只能看到包含this.Field.IsEqual(952000)的行。我做到了。你说,在每次操作中,我必须检查用户是否可以修改这一行。是吗?回答得很好。提问者建议的隐藏字段的问题是,用户也可以修改该字段,因此这可以追溯到Red所说的:永远不要相信用户输入。您说在“编辑第一”时,我必须检查用户是否可以编辑此行。成功后保存到数据库。我是对的?@AEMLoviji:是的,安全性是最重要的,应该在尽可能低的级别上应用,以确保它不会被绕过。是的,我在每个表中都添加了字段。此字段具有用户也具有的某些值。假设用户在分支952200中注册,他只能看到包含this.Field.IsEqual(952000)的行。我做到了。你说,在每次操作中,我必须检查用户是否可以修改这一行。是吗?回答得很好。提问者建议的隐藏字段的问题是,用户也可以修改该字段,因此这可以追溯到Red所说的:永远不要相信用户输入。您说在“编辑第一”时,我必须检查用户是否可以编辑此行。成功后保存到数据库。我说的对吗?@AEMLoviji:是的,安全是最重要的,应该在尽可能低的水平上应用,以确保它不会被规避。