我正在创建一个使用 ASP.NET MVC 填写在线工作申请的系统。这实际上只是一个让自己熟悉 MVC 框架的实验。我绝对不是安全专家,所以我只是想在这里得到一些建议,因为这个网络应用程序将处理敏感信息。
该系统有一组类似向导的视图。您从一个视图到下一个视图填写相关信息,直到最后提交。
每个作业应用程序都使用 GUID 主键存储在数据库中。现在,我只是将该 GUID 存储在每个页面视图中的隐藏字段中。这使得更新控制器中的模型变得很容易,如下所示:
[HttpPost]
public ActionResult ExampleAction(FormCollection formValues)
{
Guid appId = new Guid(Request.Form["ModelId"]); // the GUID stored in the hidden field
ExampleModel example = db.Entities.Single(e => e.ModelId == appId);
UpdateModel(example, formValues);
db.SaveChanges();
return RedirectToAction("ExampleAction2", new { appId = appId.ToString() });
}
我知道这并不安全,因为任何具有任何开发经验的人都知道您可以在任何浏览器的开发人员工具中编辑隐藏字段的值。那么安全获得相同结果的推荐方法是什么?