0

我正在使用 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)

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

感谢的家伙,谢谢&问候

4

1 回答 1

1

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

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

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

于 2013-05-31T11:45:34.747 回答