Вступить в клуб →
средняявопросREST API и валидация данных

В ответе API оказалось поле hashed_password: как оно туда попало

Аудит обнаружил, что ручка GET /users/{id} отдаёт клиенту в том числе hashed_password и внутренний флаг is_test_account.

В коде обработчик просто возвращает объект модели, полученный из базы, без описания схемы ответа.

В чём корень проблемы?

  • Фронтенд не должен читать это поле — достаточно договориться с командой клиента и не показывать
  • Нужно переименовать колонку в базе так, чтобы её назначение было неочевидно для читающего
  • Ответ собирается из всех атрибутов объекта: наружу должна уходить отдельная схема ответа
  • Достаточно дополнительно зашифровать значение в базе — тогда в ответе оно будет безопасным

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела