Конфиденциальность и хранение¶
Собственный форум означает, что данные храните вы, а значит, и обязанности по соблюдению требований тоже ваши. Forum Pro предоставляет инструменты, необходимые для их выполнения, без написания скриптов.
Самостоятельное удаление участника (удаление по GDPR)¶
Участник запрашивает удаление в {forum}/settings. Процесс намеренно сложно запустить случайно и легко отменить:
- Участник запрашивает удаление.
- Forum Pro отправляет письмо с двойным подтверждением. Ничего не происходит, пока участник не перейдёт по ссылке, поэтому перехваченная сессия не сможет стереть чужую учётную запись.
- Учётная запись входит в период ожидания длительностью
deletion_grace_days. - Повторный вход отменяет запрос, что защищает тех, кто действовал сгоряча или передумал.
- По истечении периода фоновый процесс окончательно удаляет данные.
Установите deletion_grace_days: 0, чтобы удалять сразу после подтверждения, и self_deletion: false, чтобы участники обращались к сотрудникам.
Сотрудники также могут удалить учётную запись в Admin → Forum → Members с теми же вариантами судьбы контента, что и при блокировке: оставить, скрыть, анонимизировать или удалить контент участника.
Сроки хранения¶
Каждый срок соблюдает фоновый процесс. 0 означает «хранить бессрочно».
retention:
purge_deleted_after_days: 30 # окончательно удалять мягко удалённый контент
purge_spam_after_days: 30 # окончательно удалять контент из очереди спама
anonymize_ip_after_days: 90 # очищать сохранённые IP-адреса
purge_flag_snapshots_after_days: 180 # удалять снимки контента из закрытых жалоб
purge_read_notifications_after_days: 90 # удалять прочитанные записи колокольчика
purge_sent_emails_after_days: 7 # удалять отправленные письма
Что делает каждый срок¶
purge_deleted_after_days превращает мягко удалённый контент в окончательно удалённый. Пока срок не истёк, удаления можно восстановить на вкладке «Удалённое». После этого они исчезают. Именно этот параметр определяет длительность окна отмены, поэтому воспринимайте 30 дней как «у модераторов есть месяц, чтобы заметить ошибку», а не как политику архивирования.
purge_spam_after_days делает то же самое для очереди спама. Спам никогда не удаляется в момент обнаружения, поэтому ложное срабатывание можно восстановить в течение этого срока.
anonymize_ip_after_days очищает сохранённые IP-адреса. IP-адреса записываются для оценки спама и расследования злоупотреблений и являются персональными данными по GDPR. Девяносто дней — распространённое значение; сократите его, если ваша политика строже.
purge_flag_snapshots_after_days удаляет снимки контента, сохранённые с закрытыми жалобами участников. Снимок сохраняет текст сообщения на момент жалобы на случай, если автор его изменит, поэтому этот срок определяет, сколько хранятся доказательства по закрытым делам.
purge_read_notifications_after_days очищает историю колокольчика после прочтения записей. Непрочитанные записи не затрагиваются.
purge_sent_emails_after_days удаляет сохранённое содержимое отправленных уведомлений по электронной почте. Очередь хранит текст до подтверждения доставки; этот срок не позволяет базе данных стать копией каждого письма, когда-либо отправленного форумом.
Юридические удержания¶
Юридическое удержание освобождает участника, тему или сообщение от всей автоматической очистки. Сроки хранения не затрагивают удержанный контент, и процесс очистки полностью его пропускает.
Применяйте удержание ко всему, что расследуется, подлежит сохранению по запросу или связано со спором. Оно переопределяет все сроки выше, включая purge_deleted_after_days, поэтому удержанный контент сохраняется, даже если модератор его удалил.
Журнал аудита¶
Каждое действие сотрудников записывается: публикации, удаления, восстановления, блокировки, снятия блокировок, выдача ролей, изменения рангов и значков, доступ к пожалованным личным сообщениям. Доступ модераторов к пожалованному личному сообщению фиксируется отдельно, потому что это единственное место, где сотрудники могут прочитать то, что участник считал приватным.
Что Forum Pro хранит об участнике¶
| Данные | Зачем | Срок хранения |
|---|---|---|
| Имя пользователя, отображаемое имя, электронная почта | Идентификация учётной записи | До удаления |
| Хеш пароля (bcrypt) | Аутентификация | До удаления |
| Сообщения, темы, реакции, закладки | Сам форум | По выбранному варианту при удалении |
| Личные сообщения | Обмен сообщениями | До удаления |
| IP-адреса | Оценка спама и расследование злоупотреблений | anonymize_ip_after_days |
| Записи сессий | Аутентификация | Очищаются фоновым процессом |
| Записи уведомлений | Колокольчик | purge_read_notifications_after_days после прочтения |
| Отправленные письма | Доставка и повторные попытки | purge_sent_emails_after_days |
| Снимки жалоб | Доказательства для модерации | purge_flag_snapshots_after_days после закрытия |
Практические советы¶
- Задайте
security.site_urlв рабочем окружении. Это не только мера безопасности, но и контроль конфиденциальности: она не позволяет подменённому заголовкуHostперенаправить ссылки сброса пароля злоумышленнику. - Проверьте
retentionдо запуска, а не после. Сокращение срока позже не отменяет уже собранные данные, но начинает их очищать. - Заблокируйте папку данных в nginx. См. Установку. Недоступная база данных ценнее любой политики хранения.
- Оставьте
purge_deleted_after_daysдостаточно длинным для полезного окна отмены и достаточно коротким для выполнения запросов на удаление. Тридцать дней — разумное значение по умолчанию для обоих требований. - Задокументируйте, что вы храните. Таблица выше — хорошая отправная точка для политики конфиденциальности, которая, вероятно, нужна вашему форуму.