Files
transcriber/tasks/items/close-verification-endpoint.md
T
av b4b19db6e4 tasks: заведён урожай ревью remove-telegram-intake
- шесть записей по кластерам причин: журнал под внешним значением, нулевой
  код ответа в журнале, затирание вложения бедным ответом, открытый анониму
  адрес подтверждения почты, рубеж расшифровки без работы, пределы длительности
- находка про код 500 у отказа приёма дописана в json-api-for-spa: там живёт
  единая точка отображения доменной ошибки
- telegram-account-link и bot-api-only-through-bot-client оставлены с оговоркой,
  что предмета у них нет до возвращения входа
2026-08-15 07:46:16 +03:00

3.9 KiB
Raw Blame History

🐞 Закрыть анониму адрес подтверждения почты

  • Тип: fix
  • Категория: Очередь — Заведена урожаем ревью и встала в конец машинально: место в плане стройки назначает человек.
  • Зачем: Адрес подтверждения почты хранилища открыт без сессии: зная адрес вошедшего, аноним вызывает у сервиса отправку письма — сегодня безвредно, потому что почтового отправителя нет.
  • Теги: review-2026-08-15

Поверхность коллекции пользователей закрывается тем же способом, что и остальные её адреса.

Шаг схемы входа через провайдера закрыл заведение записи, вход паролем и одноразовый код — но не запрос подтверждения почты. Проверено прогоном по собранному роутеру: запрос без сессии отвечает 204.

Сервис своей проверки почты не делает вовсе: учётные записи заводит и проверяет внешний провайдер, а адрес приезжает вместе с входом. То есть адрес не просто открыт — он не нужен.

Сегодня безвреден: почтовый сервер не настроен, письмо уходить некуда. Каналом досаждения он становится вместе с задачей email-notification, которая почту как раз заводит, — и закрыть его дешевле до неё, чем после.

Воспроизведение

Собрать роутер сервиса и послать POST /api/collections/users/request-verification без сессии, назвав адрес почты вошедшего. Ответ — 204: сервис принял запрос от неузнанного и завёл отправку письма. Ожидается отказ, как у прочих адресов коллекции пользователей.

Письма при этом не уходит, и потому вреда сегодня нет: почтовый сервер не настроен. Проверка судит код ответа, а не доставку.

Затрагивает

  • шаг схемы, закрывающий адреса коллекции пользователей: заводится новый, прежний не переписывается;
  • docs/security.md, раздел о поверхности хранилища — перечень закрытых адресов.

Критерии приёмки

  • Запрос подтверждения почты без сессии отвергается. Оракул: проверка по собранному роутеру — ответ не 204, письма не заводится.
  • Прочие способы открыть сессию остались закрытыми. Оракул: существующие проверки поверхности хранилища зелёные, состав их не сокращён.
  • Перечень закрытых адресов в модели угроз назван заново. Оракул: строка в docs/security.md.

Рамки

Новый шаг схемы — применённые не переписываются. Найдено прогоном ревью задачи remove-telegram-intake 2026-08-15, враждебный проход, секция свойств без построенного пути.