Соединение двух учетных записей пользователей

Я создаю метод для пользователей моего сайта, чтобы связать их учетные записи, чтобы ресурсы могли быть распределены между ними. Мой процесс до сих пор:

  • 1) Пользователь вводит адреса электронной почты пользователей, с которыми он хочет связаться.
  • 2) Если совпадения найдены, эти пользователи получают электронное письмо.
  • 3) электронная почта содержит ссылку для подтверждения. Если получатель нажмет на это, соединение между двумя учетными записями будет сформировано.

Мне интересно, насколько я должен быть в безопасности с этим последним шагом. Моя ссылка для подтверждения в формате: domain.com/link-confirm.php?fromid=xxx&toid=yyy

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

Я попытался хэшировать оба идентификатора пользователя, а затем сканировал базу данных пользователей на предмет совпадений, но password_verify Функция работает так долго, что время ожидания страницы истекает (а это всего 1000 пользователей).

Что я хотел бы знать, это:
Имеет ли смысл мой план выше?
Есть ли более аккуратный способ сделать это?
Правильно ли я беспокоюсь о спуфинге (подключение учетных записей само по себе не делит какие-либо данные между пользователями, оно просто позволяет любому пользователю инициировать)?

Спасибо

0

Решение

Вы можете просто зашифровать оба значения идентификатора, и после получения их от get — расшифровать их, здесь не нужно использовать хеши. Таким образом, кому-то понадобится тысячи лет, чтобы обмануть их.

1

Другие решения

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

Так, например, пользователь A запрашивает связь с пользователем B, вы сохраняете запрос с некоторыми уникальными данными, такими как случайный хеш и временная метка, а затем, когда пользователь B нажимает «принять» в своем электронном письме, он отправляется на страницу на вашем сервере. , Ссылка в электронном письме содержала уникальные данные, представленные на странице. Вы проверяете, действительно ли уникальные данные являются данными, которые были сгенерированы, когда пользователь А отправил запрос, и, если это так, бум, связали пользователей.

0

По вопросам рекламы [email protected]