tasks: заведён урожай ревью remove-telegram-intake
- шесть записей по кластерам причин: журнал под внешним значением, нулевой код ответа в журнале, затирание вложения бедным ответом, открытый анониму адрес подтверждения почты, рубеж расшифровки без работы, пределы длительности - находка про код 500 у отказа приёма дописана в json-api-for-spa: там живёт единая точка отображения доменной ошибки - telegram-account-link и bot-api-only-through-bot-client оставлены с оговоркой, что предмета у них нет до возвращения входа
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# 🐞 Закрыть анониму адрес подтверждения почты
|
||||
|
||||
- **Тип:** 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, враждебный проход, секция свойств без
|
||||
построенного пути.
|
||||
Reference in New Issue
Block a user