Ich habe eine ASP.NET MVC-Anwendung, die Kalender-ähnlich ist. Wie im NerdDinner Beispiel, aktualisiere ich die Ergebnisse meiner Bearbeitungsseite mit UpdateMethod()ASP.NET MVC UpdateModel anfällig für Hacker?
In meiner App sind bestimmte Ereignisse vollständig anpassbar und bestimmte sind nur teilweise anpassbar. Auch wenn das Editierformular zum Bearbeiten der teilweise anpassbaren Ereignisse nur diese Felder zur Verfügung stellt, könnte jemand natürlich sein eigenes Formular mit den fehlenden Daten erstellen und auf meiner Site veröffentlichen. Wenn sie dies tun, was soll jemanden davon abhalten, alle Felder zu ändern? Schlimmer noch, was ist, wenn sie versuchen, die ID (Primärschlüssel) zu ändern?
Es fühlt sich an wie UpdateModel() ist anfällig für sehr grundlegende Hacking. Sind meine Ängste berechtigt oder fehlt etwas?
// 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));
}
}
easy/safe mode = Erstellen Sie Formular (in) -Modelle, und ordnen Sie diese dann Ihren Entitäten über den Automapper zu. – mxmissile