Atak Over-Posting - Parameter Binding w ASP.NET MVC

Przekazywanie dodatkowych, niepożądanych parametrów


W przypadku, gdy przekazujemy obiekt, jako argument w żądaniu POST przekazywane są tylko potrzebne przez nas dane, jednak istnieje możliwość podania większej ilości parametrów których nie chcemy. Z pomocą przychodzi parameter binding, który pozwala na określenie, jakiego parametru nie chcemy używać nawet, gdy będzie przekazany z formularza. Określamy, który parametr ma być ignorowany. Przykładowo przekazujemy obiekt typu kurs, który zawiera pola: skąd, dokąd, kiedy, oraz czy_zaakceptowany. Pole o akceptacji może zmieniać tylko admin, dlatego należy je zignorować w metodzie wykorzystywanej przez użytkownika. Jako parametr wykorzystywany jest model kurs, czyli wszystkie pola łącznie z polem czy_zaakceptowany. Aby zignorować dane pole należy użyć atrybutu Bind - Exclude.

Przykład użycia:

[HttpPost]
[Bind(Exclude="czy_zaakceptowany")]
public ActionResult Dodaj(Kurs kurs)
{
}
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):