MVC验证ProjectId,UserIs等敏感信息?

时间:2013-05-31 10:58:07

标签: html html5 security asp.net-mvc-4

我正在使用ASP.NET MVC 4.5 / 5.4创建一个应用程序。

我有模特

public class user
{
prop string userId{ get; set;}
prop string email{ get; set;}
}

我用它在隐藏字段中查看和获取userId

@Html.HiddenFor(x => x.userId)

并将其提交回服务器,然后我更新用户电子邮件 但是如果用户更改了userid的隐藏字段值,则意味着它显然会在服务器端产生一些不利影响。 所以我的问题是如何防止这种攻击并在视图中存储敏感信息?

App App伙伴们, 感谢和安培;问候

1 个答案:

答案 0 :(得分:1)

  

并在视图中存储敏感信息?

不在视图中存储任何敏感信息。敏感信息应该存在于服务器上。例如,在数据库或其他东西。

另一种可能性是通过查询数据库在服务器上验证ProjectId属于当前经过身份验证的用户。显然,应该从表单身份验证模块中检索当前经过身份验证的用户,并且绝对不会成为任何隐藏字段的一部分。这是你唯一可以信赖的东西 - >当前经过身份验证的用户,以安全的方式从表单身份验证Cookie中检索。一旦你知道了用户,你就可以查询你的数据库来验证他提供的输入(像ProjectIds等等)是否真的属于他。这样,如果用户试图篡改此信息,验证将失败,您将使用相应的错误消息向他致意。

相关问题