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

53 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐞 Закрыть анониму адрес подтверждения почты
- **Тип:** 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, враждебный проход, секция свойств без
построенного пути.