- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
45 lines
3.8 KiB
Markdown
45 lines
3.8 KiB
Markdown
# 🔬 Четыре недоказанные гипотезы о поверхности входа
|
|
|
|
- **Тип:** research
|
|
- **Категория:** Очередь — Разведка закрывает тему входа последней: остальные три задачи меняют то, что она проверяет.
|
|
- **Зачем:** Ревью назвало четыре пути, которых не смогло ни подтвердить, ни опровергнуть: браузера и живого провайдера в прогоне не было.
|
|
|
|
Провенанс — отчёт триажа ревью задачи `oidc-login` 2026-08-12,
|
|
[review/report.md](../../openspec/changes/archive/2026-08-12-oidc-login/review/report.md),
|
|
раздел «Гипотезы без доказательства». Каждая либо становится задачей, либо
|
|
закрывается с причиной; сегодня они не то и не другое.
|
|
|
|
## Вопрос
|
|
|
|
Работает ли хоть один из четырёх путей на самом деле, и если да — чего стоит
|
|
каждый?
|
|
|
|
1. **Выход по чужой ссылке.** Адрес выхода сессии не требует и на запросе с
|
|
чужого сайта отвечает успехом, убирая куку. Применит ли браузер эту куку при
|
|
ограничении `SameSite=Lax` — по коду не выяснить. Если применит, человека
|
|
выкидывает молча, а унесённое значение остаётся годным.
|
|
2. **Слияние двух учётных записей провайдера с одной почтой.** Обмен ищет запись
|
|
по неизменяемому признаку провайдера, а не найдя — по адресу почты. Выдаст ли
|
|
Authelia двум разным субъектам один адрес, зависит от её настройки.
|
|
3. **Поле снимка в ответе провайдера тянет данные наружу.** Оно сопоставлено
|
|
файловому полю учётной записи, и библиотека скачивает названный там адрес —
|
|
до потолка размера записи. Шлёт ли Authelia это поле и кто им управляет,
|
|
неизвестно.
|
|
4. **Анонимный запрос подтверждения почты.** Адрес отвечает успехом и заставляет
|
|
сервис слать почту. Почта не настроена, и потолка числа запросов нет.
|
|
|
|
## Куда ляжет ответ
|
|
|
|
- подтверждённый путь — задачей в беклоге, с провенансом этой разведки;
|
|
- опровергнутый — строкой в `docs/security.md`, раздел «Что вне модели» либо
|
|
«Что разграничивает доступ», чтобы следующее ревью не открывало его заново;
|
|
- то, что зависит от настройки Authelia, — строкой там же, с указанием, какая
|
|
именно настройка это решает.
|
|
|
|
## Рамки
|
|
|
|
Смотрим только четыре названных пути. Первый требует настоящего браузера, второй
|
|
и третий — настоящей Authelia либо её настройки из `pet-project-server`;
|
|
четвёртый воспроизводится своим прогоном без внешних систем и потому берётся
|
|
первым. Прогонов на боевом контуре не делаем.
|