MVC.NET如何确保编辑后提交表单的安全



当我想提交一个表单来保存编辑后的记录时,我应该将其Id传递给控制器。然后,客户端(或攻击者(可能会更改表单上我不想更改的一些信息(例如,此Id(。我可以创建一个散列隐藏字段来检查只读字段是否已更改,并在将其发布到控制器时进行验证。对于这个问题,还有其他好的做法吗?

感谢

您可以使用服务器端算法对想要保护的数据进行编码,这样视图只接收编码的数据。当用户将表单传递给控制器时,您将解码数据并检查其有效性。还要记住,不仅要实现客户端验证,还要实现模型的服务器端验证。

AntiForgeryToken:ASP.NET MVC中的一个伟大功能是AntiForgereToken。这将生成一个隐藏的表单字段(防伪令牌(,该字段在提交表单时进行验证。防伪令牌可用于帮助保护您的应用程序免受跨站点请求伪造的影响

.cshtml代码

@using (Html.BeginForm("Index", "Home"))
{
@Html.AntiForgeryToken()
}

控制器代码

[ValidateAntiForgeryToken()]
[HttpPost]
public ActionResult Index()
{
//Your Code
return View();
}

最新更新