ASP.NET MVC - Data Tampering
Вид атаки, когда в POST запрос встраивают параметры, которых изначально на форме не было. Если пользоваться DefaultModelBinder, то он подаст на вход контроллера объект, в котором будут инициализированы лишние поля.
Способы защиты
- Принимать на вход экшн-метода объект
FormCollection
и проходить по его полям самостоятельно - Использовать в контроллере метод
UpdateModel
, в который нужно передать список тех пропертей, которые мы хотим обновить - Использовать свой
ModelBinder
. Если использовать глобально (прописывая вGlobal.asax.cs
), то он будет применяться везде и всюду. - Использовать свой
ModelBinder
, но прописать его как атрибут для параметра экшн-метода.