Конфиденциальность
Политика использования 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. Управление и удаление
- На основном сайте можно открыть «Настройки конфиденциальности» и изменить сохранённый выбор для необязательной обработки.
- First-party аналитика использования активируется только при сохранённом согласии на аналитику; Google Analytics, Яндекс.Метрика и внешняя диагностика остаются отключены.
- Очистка данных сайта удалит first-party cookies, localStorage, sessionStorage и caches, но также завершит вход и удалит несинхронизированный гостевой прогресс.
- Блокировка обязательного хранилища может сделать вход, прогресс, тему или обновление приложения недоступными.
6. Доступ третьих лиц и изменения
В текущей Release v1 конфигурации формы не передаются Web3Forms/hCaptcha, а Google Analytics, Яндекс.Метрика и внешний endpoint диагностики отключены production build. Google может участвовать только если пользователь сам выбирает вход через Google OAuth. MedQuiz не использует cookies для рекламной персонализации и не продаёт данные посетителей. Reusable bearer авторизованной сессии хранится только в HttpOnly cookie API-домена и недоступен JavaScript страницы.
Реестр пересматривается при изменении кода или поставщиков. Существенные изменения отражаются новой датой редакции. Вопросы можно направить на info@medquiz.pro.