Javascript asp.net mvc隐藏字段id问题
我总是有问题,想不出解决的办法 例如,在asp.net mvc的场景中,用户“A”有他的产品:Javascript asp.net mvc隐藏字段id问题,javascript,asp.net,asp.net-mvc,hidden-field,Javascript,Asp.net,Asp.net Mvc,Hidden Field,我总是有问题,想不出解决的办法 例如,在asp.net mvc的场景中,用户“A”有他的产品: A1(id=1),A2(id=2). 如果我们为A1编辑,在edit.cshtml中,A1的Id=1只保存在一个hiddenfield中。我们可以使用browser developer工具将A1的Id修改为2,所以修改后的值将在回发到服务器时为A2执行,尽管我们进行了服务器端验证。但用户A有足够的权限修改其所有产品A1 A2。那么在这种情况下,如何防止用户进行黑客攻击呢?我认为在url中也应该显示产
A1(id=1),A2(id=2).
如果我们为A1编辑,在edit.cshtml中,A1的Id=1只保存在一个hiddenfield中。我们可以使用browser developer工具将A1的Id修改为2,所以修改后的值将在回发到服务器时为A2执行,尽管我们进行了服务器端验证。但用户A有足够的权限修改其所有产品A1 A2。那么在这种情况下,如何防止用户进行黑客攻击呢?我认为在url中也应该显示产品id;则用户在更新时无法修改它
我是MVC新手-也许你有一些想法,或者解决这个问题的一般方法是什么?这不是一个问题,仍然是一个有效的问题,我如何解决这个问题,很简单,而不是使用普通Id,我将加密Id,模型如下所示:
public class ProductSafe
{
public string Id {get; set;}\\encrypted
public string Something {get; set;}
}
使用您喜欢加密的内容,当您获取对象id时,当您保存模型时,请将其老化以获取真实id。如果您真的担心使用黑客攻击他们自己的产品(不确定原因),请讨论一种技术,必须确保您拥有良好的授权。也许在编辑之前,检查一下是否允许编辑,然后再继续,这也是为什么我更喜欢使用GUID(用户不容易预测)来代替整数。