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