← Вернуться в MedQuiz

Конфиденциальность

Политика использования cookies и локального хранилища

Здесь перечислены технологии, которые MedQuiz и подключаемые сервисы могут сохранять или считывать в вашем браузере, их назначение, поставщики и сроки действия.

Редакция от 25.10.2026

1. Как устроен выбор

MedQuiz использует обязательные first-party cookie и локальное хранилище для функций, которые вы запрашиваете: входа, сохранения прогресса, темы интерфейса, безопасности и сохранения вашего выбора конфиденциальности. Отключение такого хранилища в браузере может нарушить работу сайта.

В текущей Release v1 конфигурации Google Analytics, Яндекс.Метрика и внешняя техническая диагностика отключены на уровне production build. После отдельного согласия на категорию «Аналитика использования» MedQuiz может отправлять на собственный сервер только обезличенные first-party счётчики ключевых действий; отказ не ограничивает игровые функции.

2. Обязательное хранилище MedQuiz

Авторизованная сессия MedQuiz хранится на API-домене в host-only cookie medquiz_session с атрибутами HttpOnly, Secure и SameSite=Strict. JavaScript страницы и подключаемые аналитические скрипты не могут прочитать reusable bearer из этого cookie. Названия с символами <...> обозначают динамическую часть ключа. Устаревший pocketbase_auth из предыдущей версии удаляется клиентом до запуска необязательных аналитических скриптов и при действующей старой сессии однократно переносится в новый серверный cookie; текущая версия больше не создаёт bearer в localStorage.

Таблица прокручивается по горизонтали. Первый столбец остаётся видимым.

Ключ или семейство Тип Назначение Срок
theme localStorage Выбранная светлая или тёмная тема. До изменения настройки или очистки данных сайта.
medquiz_session First-party host-only cookie; HttpOnly; Secure; SameSite=Strict Серверная auth-сессия PocketBase. Reusable bearer недоступен JavaScript публичной страницы. До выхода, отзыва сессий или удаления аккаунта, но не дольше 7 суток с момента входа. Отдельный JWT действует не более 24 часов и обновляется только в пределах этих 7 суток.
pocketbase_auth Legacy localStorage Устаревший bearer предыдущей версии. Текущий клиент синхронно удаляет запись и может один раз перенести ещё действующую сессию в medquiz_session. Текущей версией не создаётся; удаляется при первом запуске обновлённого клиента либо при очистке данных сайта.
medquiz_optional_processing_consent_v2 localStorage Дата и выбранные категории согласия: аналитика и техническая диагностика. До изменения решения или очистки данных сайта.
medquiz_guest_stats, medquiz_guest_state_<taskId> localStorage Гостевой прогресс, серия, открытые подсказки и состояние задач. До очистки данных сайта.
medquiz_user_<userId>_*, medquiz_daily_user_<userId>_* localStorage Локальная копия прогресса аккаунта, статистики и ежедневной задачи для синхронизации и быстрого восстановления. До удаления аккаунта/локальных данных либо очистки данных сайта.
medquiz_last_seen_sync_* localStorage Техническая отметка последней подтверждённой синхронизации прогресса аккаунта. До удаления аккаунта или очистки данных сайта.
medquiz_daily_* localStorage Стабильный выбор ежедневной задачи и совместимость с предыдущими версиями. До замены соответствующей записи или очистки данных сайта.
medquiz_dismissed_modal_* localStorage Запоминание закрытых обучающих окон. До изменения настройки, удаления аккаунта для пользовательской записи или очистки данных сайта.
medquiz_product_onboarding_v1 localStorage Состояние пошагового знакомства с механикой задачи: активный шаг, завершение или закрытие. До сброса данных сайта; после завершения или закрытия хранится как отметка, чтобы не запускать onboarding повторно.
medquiz_taxonomy_v2_progress_reset_20260716 localStorage Одноразовая техническая отметка о выполнении сброса несовместимого прогресса после перехода на taxonomy v2. До очистки данных сайта.
medquiz_auto_update_started_v1 sessionStorage Защита от повторного запуска обновления PWA в одной вкладке. До закрытия вкладки или завершения браузерной сессии.
Service Worker / Cache Storage Browser cache Офлайн-загрузка интерфейса и безопасное обновление версии приложения. Управляется браузером и заменяется при обновлении приложения или очистке данных сайта.

3. Необязательная аналитика

В текущей Release v1 конфигурации Google Analytics и Яндекс.Метрика отключены в production build: идентификаторы поставщиков не передаются в frontend, поэтому их скрипты и аналитические cookies не создаются.

После явного согласия MedQuiz отправляет на собственный API только три allowlisted события: product_onboarding_completed — завершение автоматически запущенного гостевого «Быстрого старта», onboarding_registration_completed — успешное создание аккаунта только после уже доставленного события такого onboarding в той же JavaScript-сессии, и archive_opened — открытие архива. Запрос отправляется без account credentials и не содержит user ID, email, task ID, диагноза, pathname/query, свободного текста или произвольного payload. События не создают запись в PocketBase и сохраняются только в ограниченном системном журнале MedQuiz с максимальным сроком 30 дней. Одинаковое событие дедуплицируется в пределах текущей JavaScript-сессии страницы.

Google Analytics и Яндекс.Метрика остаются отключены: их идентификаторы не передаются во frontend, внешние скрипты и аналитические cookies не создаются.

4. Формы и техническая диагностика

Предложения задач и обратная связь

Формы отправляются напрямую в собственный endpoint MedQuiz. Web3Forms и hCaptcha в текущем пользовательском потоке не используются, их SDK не загружаются и их cookies/идентификаторы не создаются.

Для защиты от автоматической отправки используются скрытое honeypot-поле и серверный rate limit. Активные записи форм хранятся не более 90 дней; после удаления они могут присутствовать только в уже созданных зашифрованных резервных копиях до окончания общего 14-дневного backup-retention.

Защита входа от перебора

Для защиты паролей сервер ограничивает количество попыток входа с одного IP-адреса и дополнительно по указанному идентификатору аккаунта: не более 10 неуспешных попыток за 15 минут независимо от IP. Успешный вход сбрасывает счётчик для этого идентификатора. В служебном счётчике используется только односторонний хеш идентификатора с серверным секретом и время окна; пароль и открытый email в нём не хранятся. Просроченные записи удаляются автоматически не позднее 2,5 часа после последнего обращения. Перенос унаследованной сессии в защищённую cookie дополнительно ограничен пятью обращениями за часовое окно на аккаунт независимо от IP; счётчик хранит только отдельный защищённый хеш и очищается по тому же сроку. При превышении лимита вход по паролю временно ограничен, даже если введён верный пароль; вход через Google этим лимитом не затрагивается. Эта необходимая защита не относится к необязательной аналитике.

Техническая диагностика

После отдельного согласия на техническую диагностику MedQuiz учитывает на собственном сервере только счётчики технических сбоев входа, обучения и блокировок загрузки ресурсов: не более одного события каждого типа за сессию страницы. Для блокировок передаётся только категория ресурса. Обычные ошибки ввода, неверный пароль, стандартные отказы 4xx и отмена входа не учитываются. Текст ошибки, стек, email, адрес страницы и данные аккаунта не передаются. Срок хранения в системном журнале — не более 30 дней. Предыдущая версия согласия не включает новый сбор: категории запрашиваются повторно, и отказ не ограничивает функции MedQuiz.

В текущей Release v1 конфигурации внешний endpoint технической диагностики не задан, поэтому такие отчёты не отправляются. Если эта функция будет включена позднее, она останется необязательной и потребует актуального раскрытия поставщика и срока хранения.

5. Управление и удаление

6. Доступ третьих лиц и изменения

В текущей Release v1 конфигурации формы не передаются Web3Forms/hCaptcha, а Google Analytics, Яндекс.Метрика и внешний endpoint диагностики отключены production build. Google может участвовать только если пользователь сам выбирает вход через Google OAuth. MedQuiz не использует cookies для рекламной персонализации и не продаёт данные посетителей. Reusable bearer авторизованной сессии хранится только в HttpOnly cookie API-домена и недоступен JavaScript страницы.

Реестр пересматривается при изменении кода или поставщиков. Существенные изменения отражаются новой датой редакции. Вопросы можно направить на info@medquiz.pro.