asp.net-mvc – ASP.NET MVC UpdateModel容易受到黑客攻击?
发布时间:2020-05-23 21:52:06 所属栏目:asp.Net 来源:互联网
导读:我有一个类似日历的ASP.NET MVC应用程序.根据NerdDinner示例,我使用UpdateMethod()更新编辑页面的结果 在我的应用中,某些事件是完全可自定义的,某些事件只能部分自定义.即使用于编辑部分可自定义事件的编辑表单只有这些字段可用,显然有人可以使用缺少的数据创
|
我有一个类似日历的ASP.NET MVC应用程序.根据NerdDinner示例,我使用UpdateMethod()更新编辑页面的结果 在我的应用中,某些事件是完全可自定义的,某些事件只能部分自定义.即使用于编辑部分可自定义事件的编辑表单只有这些字段可用,显然有人可以使用缺少的数据创建自己的表单并发布到我的站点.如果他们这样做,有什么可以阻止某人改变任何/所有领域?更糟糕的是,如果他们试图改变id(主键)怎么办? 感觉UpdateModel()容易受到非常基本的黑客攻击.我的恐惧是合法的还是我缺少的东西? // POST: /MyEvents/Edit/2
[AcceptVerbs(HttpVerbs.Post),Authorize]
public ActionResult Edit(int id,FormCollection formValues)
{
MyEvent myevent = eventRepository.GetMyEvent(id);
try
{
UpdateModel(myevent);
eventRepository.Save();
return RedirectToAction("Details",new { id = myevent.MyEventId });
}
catch
{
ModelState.AddRuleViolations(myevent.GetRuleViolations());
return View(new MyEventFormViewModel(myevent));
}
}
解决方法你错过了“模型绑定安全性”一节.您应该始终包含可以通过任何用户输入方法更新的属性白名单.例如,来自NerdDinner: [AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create( [Bind(Include="Title,Address")] Dinner dinner)
{
}
或者,如果您正在调用UpdateModel,则可以创建允许属性的字符串数组,并执行此操作 UpdateModel(myObject,allowedProperties); 您可以自己锁定类,以便只有某些属性也可以更新. [Bind(Include="MyProp1,MyProp2,MyProp3")]
public partial class MyEntity { } (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 异常 – ASP.NET应用程序池关闭问题
- asp.net – 值得学习经典ASP?
- asp.net-mvc – 我可以获取html.HiddenFor / Html.Hidden创
- asp.net – w3wp.exe占用多少内存
- asp.net – 如何增加Web服务请求的超时?
- asp.net – 如何填写一个Label.Text – 通过jQuery的属性
- asp.net-mvc-3 – MVC3中的模型级错误?
- asp.net-mvc-3 – ExpandoObject,匿名类型和Razor
- 在IIS / ASP.Net中的.NET 1.1应用程序中创建.NET 3.0子应用
- asp.net-core – “netcoreapp1.0”是一个不受支持的框架.
推荐文章
站长推荐
热点阅读
