我有桌子例如
table Car(
id int primary key,
type nvarchar(300)
)
我有mvc CarController 与
[Httpost]
Edit(Car model){}
我查看ID隐藏的地方,输入是texbox,现在我想知道如果有人覆盖隐藏的值并发送另一个ID,是不是会更改另一行?我怎么能阻止这个?
答案 0 :(得分:1)
以下是您必须阻止身份的最佳解决方案。
使用防伪令牌(在这种情况下无效,但会覆盖 大多数其他情况)。
在将其发送到视图之前加密您的Id值。发布时发生尝试 解密它并检查它是否正确解密。如果有错误 在解密期间抛出,然后由用户编辑。
答案 1 :(得分:0)
为什么要禁用编辑某些实体?可能是创建一些权限系统会更好。例如,您可以将 OwnerId 包含在 Car 实体中,并在通过 Id 检索 Car 之后检查当前(已记录) in)用户是这辆车的拥有者。