私はカレンダーのようなASP.NET MVCアプリケーションを持っています。 NerdDinnerの例では、UpdateMethod()を使用して編集ページの結果を更新しています。ASP.NET MVC UpdateModelはハッキングに対して脆弱ですか?
私のアプリでは、特定のイベントは完全にカスタマイズ可能であり、特定のものは部分的にしかカスタマイズできません。部分的にカスタマイズ可能なイベントを編集するための編集フォームは、それらのフィールドしか利用できませんが、明らかに、誰かが欠落したデータで自分のフォームを作成し、自分のサイトに投稿する可能性があります。彼らがそうしているなら、誰かがどんな/すべてのフィールドを変えないようにするのでしょうか?さらに悪いことに、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));
}
}
easy/safe mode =フォーム(in)モデルを作成し、Automapperを使用してエンティティにマップします。 – mxmissile