Администрирование и безопасность

Подтверждение e-mail, боты, удаление пользователей

Зачем подтверждать e-mail, защита от ботов без сторонних сервисов, удаление навсегда или анонимизация.

Как портал защищается от ботов, зачем подтверждать e-mail и как навсегда удалить пользователя, не нарушив GCP.

Подтверждение e-mail

Регистрация с подтверждением e-mail Форма ловушка для ботов, таймер, лимиты Письмо одноразовая ссылка, действует 24 часа Кнопка в письме «Подтвердить e-mail»: адрес доказан Аккаунт открыт письмо-приветствие, вход (или одобрение) Бот письмо не откроет: войти нельзя, удалим
Пока владелец не нажмёт ссылку из письма, аккаунт не открывается. Боты письмо не открывают, поэтому остаются неподтверждёнными, и Владыка портала удаляет их одной кнопкой.
  • После регистрации приходит письмо с кнопкой «Подтвердить e-mail». Ссылка одноразовая и действует 24 часа; в базе хранится только её хеш.
  • Пока адрес не подтверждён, войти нельзя. Если человек потерял письмо, он просто входит со своим паролем: портал отправит новую ссылку (не чаще раза в минуту и не больше пяти в сутки).
  • Приглашение в исследование пришло на этот же адрес, поэтому приглашённые подтверждены сразу. Сброс пароля по ссылке из письма тоже подтверждает адрес.
  • Владыка портала видит статус «E-mail не подтверждён» и может отметить адрес подтверждённым вручную, если точно знает человека.
  • Если почта на сервере не настроена, подтвердить ничего нельзя, поэтому проверка выключается сама; в «Пользователях» и «Настройках» появляется предупреждение.

Защита от ботов

Мы не используем Google reCAPTCHA и Cloudflare: они передают данные посетителей за рубеж (152-ФЗ) и могут отключиться из-за санкций. Вместо них работают проверки, которых человек не замечает:

  • Ловушка. В форме есть поле, невидимое людям. Бот его заполняет и получает обычную страницу «проверьте почту», но аккаунт не создаётся.
  • Время заполнения. Форма, отправленная быстрее чем за 3 секунды или старше 3 часов, не принимается.
  • Лимиты по адресу сети и по e-mail. Не больше 5 регистраций в час и 20 в сутки с одного адреса, 60 неудачных входов в час, 3 письма для сброса пароля в час на один e-mail.
  • Одноразовая почта и ссылки. Адреса известных сервисов одноразовой почты (mailinator, yopmail, temp-mail и другие) не принимаются; дополнительные домены Владыка портала добавляет в «Настройках → Защита от ботов». Имя, организация и должность не могут содержать ссылки: так боты рассылают рекламу через наши приветственные письма.

Удалить пользователя навсегда

Удалить навсегда или анонимизировать Есть следы в работе? данные, подписи, проекты, команда, действия Владыки портала Нет: удалить совсем аккаунта больше нет; так удаляются боты Да: анонимизировать имя, e-mail, пароль стёрты; в записях остаётся № нет да Аудиторский след неизменяем: его записи хранят имя так, как оно было записано (это доказательство).
Портал сам проверяет, оставил ли аккаунт следы в работе, и предлагает только допустимый вариант.

Откройте карточку пользователя («Администрирование → Пользователи» → человек), внизу раздел «Удалить аккаунт навсегда». Для подтверждения введите его e-mail.

  • Нет следов в работе (бот или человек, который только зарегистрировался): аккаунт удаляется полностью, как будто его не было.
  • Есть следы (вводил или менял данные, подписывал, состоял в команде, создавал проекты): удалить нельзя, GCP и 21 CFR Part 11 требуют, чтобы аудит хранил, кто что сделал. Портал предлагает анонимизацию: имя, e-mail, организация, должность и пароль стираются навсегда, вход закрывается, участие в командах заканчивается, письма в очереди удаляются. Записи и аудит остаются и указывают на номер аккаунта (#N).
  • Владыки портала удалить нельзя, пока с него не сняты права. Себя удалить нельзя.
  • Каждое удаление и анонимизация записываются в аудит портала по номеру аккаунта, без e-mail.

Удалить всех ботов сразу

«Пользователи → Удалить ботов…» показывает аккаунты, которые не подтвердили e-mail за выбранное время (1 час, сутки, 3 или 7 дней) и не оставили следов. Владыки портала, демо-команда и все, у кого есть записи в исследованиях, в список не попадают. Для подтверждения введите число аккаунтов.

Демо-команда — не боты. Кнопка «Демо-проект» создаёт вымышленных людей с адресами @demo.invalid. Они неактивны, войти под ними нельзя, писем они не получают. В списке пользователей они собраны в отдельном фильтре «Демо-команда» и удаляются, когда не остаётся ни одного демо-проекта.

Команды на сервере

Для Владыки портала сервера (в папке /opt/youedc-platform):

  • docker compose exec yp_app flask --app wsgi users-recent --days 7 — регистрации за неделю: когда, с какого адреса, подтверждён ли e-mail, и адреса сети с подозрительно многими регистрациями.
  • docker compose exec yp_app flask --app wsgi users-purge-unconfirmed --hours 24 — показать неподтверждённых без следов; с --yes удалить их.
  • docker compose exec yp_app flask --app wsgi user-delete EMAIL — показать, что будет (удаление или анонимизация); с --yes выполнить.