Files
transcriber/tasks/items/login-surface-hypotheses.md
T

3.7 KiB

🔬 Четыре недоказанные гипотезы о поверхности входа

  • Тип: research
  • Категория: Очередь
  • Зачем: Ревью назвало четыре пути, которых не смогло ни подтвердить, ни опровергнуть: браузера и живого провайдера в прогоне не было.

Провенанс — отчёт триажа ревью задачи oidc-login 2026-08-12, review/report.md, раздел «Гипотезы без доказательства». Каждая либо становится задачей, либо закрывается с причиной; сегодня они не то и не другое.

Вопрос

Работает ли хоть один из четырёх путей на самом деле, и если да — чего стоит каждый?

  1. Выход по чужой ссылке. Адрес выхода сессии не требует и на запросе с чужого сайта отвечает успехом, убирая куку. Применит ли браузер эту куку при ограничении SameSite=Lax — по коду не выяснить. Если применит, человека выкидывает молча, а унесённое значение остаётся годным.
  2. Слияние двух учётных записей провайдера с одной почтой. Обмен ищет запись по неизменяемому признаку провайдера, а не найдя — по адресу почты. Выдаст ли Authelia двум разным субъектам один адрес, зависит от её настройки.
  3. Поле снимка в ответе провайдера тянет данные наружу. Оно сопоставлено файловому полю учётной записи, и библиотека скачивает названный там адрес — до потолка размера записи. Шлёт ли Authelia это поле и кто им управляет, неизвестно.
  4. Анонимный запрос подтверждения почты. Адрес отвечает успехом и заставляет сервис слать почту. Почта не настроена, и потолка числа запросов нет.

Куда ляжет ответ

  • подтверждённый путь — задачей в беклоге, с провенансом этой разведки;
  • опровергнутый — строкой в docs/security.md, раздел «Что вне модели» либо «Что разграничивает доступ», чтобы следующее ревью не открывало его заново;
  • то, что зависит от настройки Authelia, — строкой там же, с указанием, какая именно настройка это решает.

Рамки

Смотрим только четыре названных пути. Первый требует настоящего браузера, второй и третий — настоящей Authelia либо её настройки из pet-project-server; четвёртый воспроизводится своим прогоном без внешних систем и потому берётся первым. Прогонов на боевом контуре не делаем.