Зачем нужна токеновая схема? - PullRequest
0 голосов
/ 16 февраля 2012

Многие сайты с регистрацией, которые запрашивают подтверждение по электронной почте, используют сайты в своих URL-адресах.

Почему они это используют?

Например, в случае подтверждения по электронной почте: почему бы просто не использовать зарегистрированный идентификатор пользователя вместо токена ?! В случае использования его на веб-страницах я вообще не получил !!

Пояснения с реальными приложениями приветствуются!

Заранее спасибо!

1 Ответ

1 голос
/ 16 февраля 2012

Токен в этом контексте обычно представляет собой одноразовую случайную строку с ограничением по времени, используемую для проверки.Токен (скажем) 40 символов может быть сгенерирован легко [например, sha1(microtime() . rand(1, 10000)))], который не может быть угадан пользователем и не может быть подделан (в пределах разумного).

Для подтверждения по электронной почте,токен будет сгенерирован и связан с вашей учетной записью.Когда вы посещаете адрес, содержащий токен, учетная запись активируется.Поскольку мы установили, что токен не может быть подделан или угадан (в пределах разумного), мы только что установили, что у определенного пользователя действительно есть адрес электронной почты, который он нам дал.

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


При входе в систему или отправке какой-либо формы можно использовать термин «токен»в несколько ином контексте - это все еще одноразовая случайная строка с ограничением по времени, но она используется для того, чтобы убедиться, что человек, который отправил форму, только что пришел из формы, которую он пытался отправить.

Например, скажемВы входите в свой онлайн-банкинг.У них может быть форма для перевода денег на другой банковский счет.Если вы зайдете на сайт www.nastysite.com, они могут содержать iframe, который указывает на <iframe src="http://www.mybank.com/send_money.php?amount=9001&to=Joe">.Если ваш банк не подтвердит, что вы действительно были в форме, этот платеж будет выполнен, и вы не будете счастливы.Даже если вы находитесь в форме, шансы правильного токена в вашей форме, используемого при фальшивой загрузке страницы, равны (почти) нулю.

Это называется «Подделка межсайтовых запросов», или CSRF.,Чтобы узнать больше о CSRF, посмотрите эту статью в Википедии .Кроме того, я только что получил эту ссылку после написания этого поста и увидел, что они используют очень похожий пример с моим - подлинное совпадение, ха-ха.

...