К списку
Безопасность и авторизацияSeniorТехническое

Методы проверки защиты REST API от mass assignment атак

Краткий ответ

Проверяют, что API игнорирует непредусмотренные поля и не позволяет изменять критичные атрибуты через тело запроса. Используют тесты с передачей привилегированных данных и валидацией whitelist.

Развёрнуто

Краткий ответ

Для тестирования защиты от mass assignment необходимо отправлять запросы с дополнительными или привилегированными полями в теле и проверять, что сервер их не принимает и не применяет. Важным моментом является проверка наличия whitelist, который ограничивает поля для обновления.


Как это работает

Mass assignment — это уязвимость, при которой REST API автоматически присваивает значения из тела запроса всем полям модели без фильтрации. Это может привести к нежелательному изменению критичных данных, например, ролей пользователя или прав доступа.

Для защиты используют:

  • Whitelist — явный список полей, которые разрешено менять через API.
  • Игнорирование или отклонение полей, не входящих в whitelist.

Тестировщик отправляет запросы с дополнительными полями, которые не должны изменяться, и проверяет, что они не повлияли на данные.

Действие Ожидаемый результат
Передача разрешённых полей Поля успешно обновляются
Передача запрещённых полей Изменения не применяются, поле игнорируется

Пример

POST /api/users/123 HTTP/1.1
Content-Type: application/json

{
  "username": "new_username",
  "role": "admin"  
}

Если API защищён, поле role не должно измениться, так как оно не входит в whitelist на изменение через этот эндпоинт.

Что важно знать на собеседовании

  • Mass assignment возникает при автоматическом маппинге данных из запроса в модель без фильтрации.
  • Whitelist ограничивает поля, которые можно менять, предотвращая нежелательные изменения.
  • Тестирование заключается в попытках изменить критичные поля и проверке, что они не обновились.
  • Необходимо проверять как успешное обновление разрешённых полей, так и игнорирование запрещённых.
  • В некоторых фреймворках есть встроенные механизмы защиты, которые тоже стоит проверить.

Тема: Безопасность и авторизация | Уровень: senior