MVC.NET 如何在编辑后安全提交表单

问题描述 投票:0回答:3

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

谢谢

asp.net-mvc form-submit
3个回答
1
投票

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


1
投票

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

.cshtml代码

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

控制器代码

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

0
投票
749行: 750 号线: 751 号线: 第 752 行:
© www.soinside.com 2019 - 2024. All rights reserved.