Mam aplikację ASP.NET MVC, która jest podobna do kalendarza. Zgodnie z przykładem NerdDinner, aktualizuję wyniki mojej strony edycji za pomocą UpdateMethod()ASP.NET MVC UpdateModel podatny na ataki hakerskie?
W mojej aplikacji niektóre zdarzenia można w pełni dostosować, a niektóre można tylko częściowo dostosować. Mimo że formularz edycji do edytowania częściowo dostosowywalnych zdarzeń ma tylko te pola, to oczywiście ktoś może utworzyć własny formularz z brakującymi danymi i opublikować go w mojej witrynie. Jeśli to zrobią, co powstrzyma kogoś przed zmianą jakichkolwiek/wszystkich pól? Co gorsza, jeśli spróbują zmienić identyfikator (klucz podstawowy)?
Wygląda na to, że UpdateModel() jest podatny na bardzo podstawowe hakowanie. Czy moje obawy są uzasadnione, czy jest coś, czego mi brakuje?
// 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));
}
}
Tryb łatwy/bezpieczny = twórz modele (nie), a następnie mapuj je do swoich podmiotów za pomocą Automapper. – mxmissile