Токен отображения и модель безопасности
Обзор
У сессии Q&A есть две привилегированные поверхности помимо публичного представления участника: Панель хоста (модерация) и Режим отображения (проекция). Они используют разные примитивы безопасности, потому что их модели угроз различаются.
| Поверхность | Защита | Почему |
|---|---|---|
| Панель хоста | 6-значный PIN хоста (вводится человеком) | Ориентация на мобильные устройства; волонтёры должны быстро аутентифицироваться без копирования длинных URL. |
| Режим отображения | 32-символьный токен отображения в URL | Настроил и забыл для проекционного ПО (ProPresenter, OBS, браузеры киосков); никогда не вводится человеком. |
На этой странице документированы оба, включая перегенерацию PIN и кода присоединения, и углублённую интеграцию с ProPresenter.
Токен отображения
При создании сессии система генерирует 32-символьный криптографически случайный токен и сохраняет его вместе с сессией. Токен затем встраивается в публичный URL отображения, который вы копируете напрямую с панели хоста или со страницы сессии в админке, а не вводите вручную.
Любой, у кого есть полный URL, может открыть проекционный дисплей без ввода PIN хоста. Дисплей только для чтения — токен не авторизует записи; он только открывает доступ к режиму отображения.
Почему токен, а не PIN
PIN короткий и удобен для ввода человеком. Встраивание его в URL раскрыло бы его в истории браузера, записях экрана и в любом UI «Недавние URL» на общих компьютерах. Токен, напротив, достаточно длинный, чтобы перебор был неосуществим (32 случайных алфавитно-цифровых символа дают примерно 190 бит энтропии). Токен также ограничен только режимом отображения для чтения, поэтому даже при утечке худший случай — «кто-то удалённо смотрит проекционную ленту» — он не может модерировать или удалять контент.
Где найти URL отображения
На панели хоста откройте всплывающее окно Настройки отображения (кнопка проектора/дисплея в интерфейсе панели). Поле URL отображения внизу этого окна содержит полный URL с токеном. Нажмите Копировать, чтобы скопировать в буфер обмена.
Он также появляется на странице сведений о сессии в админке (Q&A → открыть сессию) на карточке URL отображения. Карточка перечисляет два URL:
- Публичный URL отображения — с меткой PIN не требуется. Это URL с токеном; отправьте его медиакоманде для ProPresenter, OBS или любого браузера проектора. Только чтение — получатели могут просматривать, но не модерировать.
- URL отображения хоста — с меткой Требуется PIN. Для собственного предпросмотра из авторизованного браузера; запрашивает PIN хоста, если вы ещё не аутентифицированы.
Если URL отображения утёк
Отдельного действия «перегенерировать токен отображения» нет — токен генерируется один раз при создании сессии и остаётся стабильным на всё время жизни сессии, даже при переходах статуса (В эфире → Закрыта → В архиве). Это намеренно, чтобы проекционные ленты продолжали работать без повторной вставки URL посреди богослужения.
Если публичный URL отображения оказался там, где не должен (например, по ошибке опубликован в событии Facebook), практические варианты сдерживания:
- Закройте или архивируйте сессию, чтобы режим отображения перестал показывать живой контент (см. «Когда токен / PIN перестаёт работать» ниже).
- Перегенерируйте код присоединения и PIN хоста, чтобы защитить поверхности участника и хоста (у них есть перегенерация в один клик).
Помните: утёкший токен только для чтения — утечка раскрывает проекционную ленту только для просмотра; она никогда не даёт прав модерации или удаления.
PIN хоста
PIN хоста — 6-значный числовой код, генерируемый при создании сессии. Защита PIN документирована в Разрешения и роли → PIN хоста. Кратко:
- Хранится вместе с сессией.
- Требуется при первом доступе к панели хоста с любого устройства.
- При правильном вводе на устройстве устанавливается cookie, ограниченная сессией. Cookie привязана к этой одной сессии; ввод PIN для одной сессии не аутентифицирует другую.
- Cookie не сохраняются в режиме приватного просмотра / инкогнито браузера.
Перегенерация PIN
На странице сведений о сессии в админке нажмите Перегенерировать PIN (на карточке перегенерации). Эффекты:
- Генерируется новый 6-значный PIN.
- Все существующие сеансы хоста для этой сессии аннулируются — каждое устройство с открытой панелью будет снова запрошено при следующем обновлении.
- Токен отображения не затрагивается; проекционные ленты продолжают работать.
Используйте, когда PIN разошёлся слишком широко или волонтёр-модератор больше не доверен.
Перегенерация кода присоединения
На той же карточке также есть Перегенерировать код, который выдаёт новый код присоединения (и аннулирует текущие QR / короткие ссылки). Подтвердите запрос перед этим — любые напечатанные или общие ссылки присоединения и текущий QR перестанут работать.
Перегенерация кода присоединения не влияет на PIN хоста и токен отображения.
Сводка модели угроз
От чего защищает каждая защита:
| Угроза | Защита |
|---|---|
| Случайный участник пытается модерировать | PIN хоста (6 цифр, не выводится из публичной информации) |
| Утечка URL отображения | Только чтение токена; закройте/архивируйте сессию, чтобы отключить ленту |
| Украденное устройство с cookie хоста | Cookie, ограниченная сессией; администратор может перегенерировать PIN для аннулирования |
| Эскалация привилегий между сессиями | Cookie и токены ограничены сессией; нет повторного использования между сессиями |
| Перебор PIN | Ввод PIN с ограничением частоты |
| Перебор токена отображения | 32-символьный случайный токен; ~190 бит энтропии; неосуществимо |
| Злоупотребления публичных участников | Лимиты по устройству + блокировка участника + пауза/закрытие сессии (см. 10-rate-limits-and-abuse.md) |
Интеграция с ProPresenter — углублённо
ProPresenter имеет первоклассную поддержку веб-слайдов, что рекомендуемый способ встроить дисплей Q&A. URL с токеном создан именно для этого рабочего процесса.
Настройка
- Получите URL. На панели хоста откройте всплывающее окно Настройки отображения и скопируйте значение URL отображения — или используйте Публичный URL отображения с карточки URL отображения на странице сведений о сессии в админке.
- Создайте веб-слайд в ProPresenter. В плейлисте богослужения добавьте новый слайд и выберите Web как тип слайда.
- Вставьте URL в поле URL веб-слайда.
- Установите «Auto Refresh» в ВЫКЛ. Дисплей сам обновляется каждые 3 секунды (каждые 15 секунд, когда вкладка скрыта). Автообновление ProPresenter прервёт непрерывность анимации.
- Установите «Show in Show» в ВКЛ. Это держит веб-представление отрендеренным, даже когда слайд не активен, поэтому при переключении страница уже загружена и подключена.
- Необязательно: Audio: ВЫКЛ. У режима отображения нет звука, но отключение предотвращает создание аудиоконтекста ProPresenter.
Советы
- Предзагрузка перед богослужением. Сделайте веб-слайд активным на несколько секунд во время предбогослужебного обхода. Слайд подключится, получит текущее состояние и останется синхронизированным с тех пор.
- Настройка темы. Установите тему проекции и размер шрифта с панели хоста до богослужения. Режим отображения подхватывает изменения в реальном времени, но не хотите возиться с цветами во время богослужения.
- Полноэкранный режим. Веб-слайд ProPresenter рендерится на холсте слайда. Дисплей автоматически скрывает курсор после нескольких секунд бездействия; дальнейших действий для полноэкранного режима не нужно.
- Надёжность сети. Дисплей обновляется через короткий интервал, поэтому кратковременные сбои сети дают лишь короткое окно устаревшего состояния до 3 секунд. Нет шторма переподключений; после восстановления сети следующее обновление догоняет.
Интеграция с OBS
Для трансляций с OBS:
- Добавьте Browser Source.
- Вставьте публичный URL отображения.
- Установите ширину/высоту под разрешение вывода (обычно 1920×1080).
- Снимите галочку «Shutdown source when not visible» (оставьте загруженным).
- Снимите галочку «Refresh browser when scene becomes active» (пусть страница управляет своим обновлением).
Режим отображения адаптивен и чисто рендерится в 1920×1080. Если трансляция использует нестандартное соотношение сторон (вертикальный мобильный, ультраширокий), настройте размер browser source и параметр размера шрифта дисплея.
Когда токен / PIN перестаёт работать
Несколько нормальных случаев, когда защита начинает отказывать:
- Сессия в архиве или удалена. И режим отображения, и панель хоста возвращают публичную страницу «Сессия завершена» в этом состоянии — защита не запрашивается.
- Неправильный или отсутствующий ключ в URL отображения. URL с опечаткой или усечённый отклоняется сразу, а не тихо переходит к вводу PIN, поэтому сломанный общий URL падает громко. Перекопируйте полный URL с панели хоста или карточки URL отображения в админке.
- PIN был перегенерирован. Введите новый PIN на устройстве хоста.
- Cookie очищены на устройстве хоста. Введите PIN снова.
- Другой браузер / другое устройство. Каждое устройство аутентифицируется независимо.
Если застряли на стороне хоста, самый быстрый сброс: откройте страницу сведений о сессии в админке, нажмите Перегенерировать PIN, затем введите новый PIN на телефоне хоста. Для проекционной ленты перекопируйте Публичный URL отображения и вставьте заново в ProPresenter или OBS.
Предыдущая: Архив и хранение данных