mvc中的安全id值c#

时间:2014-12-25 08:56:04

标签: c# asp.net-mvc

我有桌子例如

  table Car(
   id int primary key,
   type nvarchar(300)
)

我有mvc CarController 与

[Httpost]
Edit(Car model){}

我查看ID隐藏的地方,输入是texbox,现在我想知道如果有人覆盖隐藏的值并发送另一个ID,是不是会更改另一行?我怎么能阻止这个?

2 个答案:

答案 0 :(得分:1)

以下是您必须阻止身份的最佳解决方案。

  1. 使用防伪令牌(在这种情况下无效,但会覆盖 大多数其他情况)。

  2. 在将其发送到视图之前加密您的Id值。发布时发生尝试     解密它并检查它是否正确解密。如果有错误     在解密期间抛出,然后由用户编辑。

答案 1 :(得分:0)

为什么要禁用编辑某些实体?可能是创建一些权限系统会更好。例如,您可以将 OwnerId 包含在 Car 实体中,并在通过 Id 检索 Car 之后检查当前(已记录) in)用户是这辆车的拥有者。