asp.net mvc隐藏字段id问题

时间:2016-01-29 11:29:02

标签: javascript asp.net asp.net-mvc hidden-field

我总是遇到问题,无法找到解决问题的方法。

例如在asp.net mvc的场景中,用户“A”有他的产品:

A1(id=1),A2(id=2).

如果我们编辑A1,在Edit.cshtml中,A1的Id = 1只保存在一个隐藏字段中。我们可以使用浏览器开发工具将A1的Id修改为2,因此在回发到服务器时将对A2进行修改后的值,尽管我们进行了服务器端验证。但是用户A有足够的权利修改他的所有产品A1 A2。那么在这种情况下,如何防止用户入侵?我想也要在网址中显示产品ID;然后用户在更新时无法修改它。

我是MVC的新手 - 也许你有一些想法或解决这个问题的一般方法是什么?

1 个答案:

答案 0 :(得分:0)

这绝不是一个值得关注的问题,仍然是一个有效的问题,我是如何解决这个问题的,简单而不是使用普通的ID我会加密id,模型看起来像:

public class ProductSafe
{
  public string Id {get; set;}\\encrypted
  public string Something {get; set;}
}

使用您想要加密的内容,当您获取对象ID时会加密,当您保存模型时会将其破坏以获得真实ID。