All articles

Overposting vagy Mass Assignment támadás ASP.NET MVC-ben

Published 2014-04-10 - Last modified 2014-04-10

Original: https://soci.hu/blog/index.php/2014/04/10/overposting-vagy-mass-assignment-tamadas-asp-net-mvc-ben/

Nagyon hasznos a binder az MVC-ben, nem kell kézzel kiszedegetni a form értékeket és átmásolni a modellbe. De ha a modell több property-t tartalmaz mint amit a html formba kigenerálunk, akkor ki vagyunk téve egy támadásnak. Ugyanis minden további nélkül be lehet rakni a post kérésbe olyan mezőket is, amelyek nincsenek a formon, de benne vannak a modellben, így alapban, ha nem korlátozzuk le a binder szépen feltölti a modellt a fake bepostázott értékekkel is. Ez durva secu támadásokra ad lehetőséget.
A kivédésére itt bemutatnak sokféle megoldást. A legjobb szerintem az utolsó, amikor tényleg az adott view részére hozunk létre egy specifikus modellt, nem pedig a bindert próbáljuk meg lebeszélni a felesleges adatmásolásokról.

Ps. ma végzek a jelentkezési lappal mvc-ben a TDD tanfolyamra, nem véletlenül szól mvc-ról a post. :)