【发布时间】:2016-01-29 11:29:01
【问题描述】:
我总是有问题,想不出办法解决。
例如在asp.net mvc的场景中,用户“A”有他的产品:
A1(id=1),A2(id=2).
如果我们为 A1 进行编辑,在 Edit.cshtml 中,A1 的 Id = 1 只是保存在隐藏字段中。我们可以使用浏览器开发工具修改 A1 的 ID 为 2,所以修改后的值将在回发到服务器时为 A2 完成,尽管我们进行了服务器端验证。但是用户 A 有足够的权限修改他所有的产品 A1 A2。那么在这种情况下,如何防止用户被黑客入侵呢?我认为还要在 url 中显示产品 id;那么用户在更新时不能修改它。
我是 MVC 的新手——也许你有一些想法或者解决这个问题的一般方法是什么?
【问题讨论】:
-
如果您真的担心使用黑客自己的产品(不知道为什么)然后this article 讨论一种技术
-
只要确保您有良好的授权。也许在编辑之前,检查他们是否被允许在继续之前进行编辑,这也是为什么我更喜欢使用 GUID(用户不容易预测)而不是整数。
标签: javascript asp.net asp.net-mvc hidden-field