Tengo una aplicación ASP.NET MVC similar a un calendario. Según el ejemplo de NerdDinner, estoy actualizando los resultados de mi página de edición usando UpdateMethod()ASP.NET MVC UpdateModel vulnerable a la piratería?
En mi aplicación, ciertos eventos son totalmente personalizables y algunos solo son parcialmente personalizables. Aunque el formulario de edición para editar los eventos parcialmente personalizables solo tiene esos campos disponibles, obviamente alguien podría crear su propio formulario con los datos faltantes y publicar en mi sitio. Si lo hacen, ¿qué impedirá que alguien cambie alguno/todos los campos? Peor aún, ¿qué pasaría si intentaran cambiar la identificación (clave principal)?
Parece que UpdateModel() es vulnerable a la piratería muy básica. ¿Son legítimos mis temores o hay algo que me falta?
// 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));
}
}
modo fácil/seguro = cree modelos de formulario (en), luego asigne esos a sus entidades a través de Automapper. – mxmissile