Безопасно ли / лучше всего поддерживать маркер регистрации в URL-адресе в качестве параметра строки запроса во время регистрации? - PullRequest
0 голосов
/ 14 октября 2018

У меня есть угловое 6 FE + ASP.NET Core приложение для веб-сайта, который я создаю, но используемая технология не совсем важна для этого вопроса (я думаю).

Я хочучтобы узнать, достаточно ли безопасно (субъективно я знаю) включить маркер «регистрации» в URI в качестве параметра запроса строки, в то время как пользователь регистрируется / входит на сайт.

Сайт - это фантастикафутбольный сайт.Есть менеджер лиги, который может приглашать людей в лигу (отправить ссылку для приглашения по электронной почте).Допустим, название лиги «Фиолетовая лига 1»

Ссылка на электронную почту, которая разослана людям, выглядит следующим образом:

https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789

например, отправлено моему другу: john@john.com

Токен соединения создается, когда ссылка отправляется на сервер, а токен связан с одним конкретным электронным письмом, все хранятся в базе данных и проверяются.с помощью серверного веб-приложения.Токен abcdef123456789 позволяет только пользователю с точным именем пользователя john@john.com присоединиться к лиге «Фиолетовая лига 1».

john@john.com может иметь или не иметь зарегистрированную учетную записьвнутри системы, поэтому после перехода по ссылке на соединение он будет перенаправлен (Auth Route Guard) на страницу входа и будет использовать toReturnUrl в качестве параметра строки запроса:

https://fantasyleage1.com/login?toReturnUrl=https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789

(обратите внимание, что в этом посте я не кодировал URL toReturnURL, чтобы сделать его более читабельным)

Если у Джона уже есть аккаунт на сайте, он входит в систему и вступает в лигу - отлично.

Мой главный вопрос, однако, заключается в следующем: если у Джона нет учетной записи, ему придется зарегистрироваться (на странице / login есть кнопка, которая перенаправляет на / register), будет ли это проблемой безопасности, еслиссылка на регистр поддерживает этот параметр регистрации URL, поэтому, например, поток посещенных URL будет выглядеть примерно так:

https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789 Auth Redirect ->

https://fantasyleage1.com/login?toReturnUrl=https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789 Джон нажимает «Register», который добавляет еще один toReturnUrl в «стек» ->

https://fantasyleage1.com/register?toReturnUrl=https://fantasyleage1.com/login?toReturnUrl=https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789 John Регистрирует и возвращает его к самому непосредственному toReturnUrl в «стеке» ->

https://fantasyleage1.com/login?toReturnUrl=https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789 Джон входит в систему, и он ведет его к финальному toReturnUrl в стеке ->

https://fantasyleague1.com/joinexisting?jointoken=abcdef123456789 -> END, мы находимся справапоместите сейчас.

Я вижу другие сайты, которые НЕ следуют этому пути, как только пользователь должен зарегистрировать новую учетную запись, я увидел, что другие сайты просто "забывают" весь toReturnUrl и после того, как пользовательзарегистрирован, ему / ей просто нужно перейти по ссылке «присоединиться» в электронном письме для этого.Это из-за безопасности?Или усилие по кодированию?Мне не очень нравится это, кажется расточительным.

Обратная связь, если этот подход является правильным или нет, будет оценен.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...