Каков рабочий процесс для безопасной системы "проверка по электронной почте"?

Я думаю о системе типа форума, которая позволит пользователям публиковать/редактировать сообщения без учетной записи, но через проверку электронной почты.

Итак, вы должны заполнить форму, указать адрес электронной почты, отправить, а затем получить ссылку в электронном письме, которое "активирует" ваше сообщение. То же самое нужно отредактировать. Нажмите "изменить", получите электронную почту со ссылкой, ссылка позволит вам изменить форму.

Я пытаюсь понять точные шаги, чтобы сделать это безопасно. Как создать ссылку на ссылку, срок действия которой истекает так долго? Как я могу гарантировать, что он поступает с адреса электронной почты, а не только на какой-нибудь бот-цикл через потенциальный URL-адрес?

Приветствуется любая помощь для начала работы в правильном направлении.

Я использую python, flask, postgres на heroku.

Ответ 1

Поскольку вы используете флягу, вы можете посмотреть на это:

http://flask.pocoo.org/snippets/50/

используя пример из ссылки выше, рабочий процесс может выглядеть примерно так:

  • Пользователь вводит сообщение и публикует сообщения.
  • Создайте защищенную ссылку с помощью модуля itsdangerous, который может быть привязан к определенному электронному письму (объясненному выше, если он был снят)
  • Как только пользователь получит письмо и определенный URL-адрес, сгенерированный на шаге 2, они могут нажать на него, чтобы подтвердить сообщение. Вы даже можете добавить дополнительный уровень проверки, когда пользователь нажимает на этот URL-адрес, где вы можете попросить их снова ввести свой адрес электронной почты, а затем сопоставить его с адресом электронной почты, привязанным к URL-адресу.