我总是遇到问题,无法找到解决问题的方法。
例如在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的新手 - 也许你有一些想法或解决这个问题的一般方法是什么?
答案 0 :(得分:0)
这绝不是一个值得关注的问题,仍然是一个有效的问题,我是如何解决这个问题的,简单而不是使用普通的ID我会加密id,模型看起来像:
public class ProductSafe
{
public string Id {get; set;}\\encrypted
public string Something {get; set;}
}
使用您想要加密的内容,当您获取对象ID时会加密,当您保存模型时会将其破坏以获得真实ID。