Вопрос

Этот вопрос, вероятно, задавался ранее, но, похоже, я не могу правильно сформулировать свой поиск, чтобы найти ответ.

Обычно, когда вы регистрируетесь, чтобы получить доступ к форуму в Интернете, вам отправляется электронное письмо об авторизации, и вы можете щелкнуть ссылку, ведущую на страницу, где выполняется авторизация.

Я хочу отправить письмо уже созданному пользователю (но не вошел в систему) и позволить ему принять предложение, щелкнув ссылку в письме. Ссылка на курс указывает на страницу, которая выполняет операции с базой данных и показывает какой-то результат.

Какие методы и / или маршруты я должен выбрать, чтобы реализовать это? И так как это связано с безопасностью, что я должен остерегаться?

С уважением, Каспер

Это было полезно?

Решение

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

Затем отправьте им электронное письмо со ссылкой на DoSomething.aspx? id = long_string_here .

Напишите DoSomething.aspx , чтобы он просматривал длинную строку и предоставлял пользователю подтверждение того, что он будет делать, и кнопку для этого. Вход в систему не требуется. Вы даже можете оставить пользователя в системе, если хотите.

После завершения действия или каждые X дней удаляйте строку из таблицы.

проблемы:

<Ол>
  • Плохие люди могут попытаться открыть вашу страницу случайными строками. Если ваши строки достаточно длинные и случайные, это не имеет значения, но вы можете ограничить доступ к странице или запретить более X запросов с IP-адреса за указанный период.
  • Агрессивные спам-контролеры могут переходить по ссылке в теле письма. Убедитесь, что никакие операции не выполняются, просто зайдя на страницу; пользователь должен нажать кнопку или иным образом вызвать POST.
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top