Оставайтесь в системе. Рекомендации: как имя пользователя в файле cookie делает его более безопасным?

Это ветвь другого вопроса: каков наилучший способ реализации "запомнить меня" для веб-сайта?

Лучший ответ - реализовать это: http://jaspan.com/improved_persistent_login_cookie_best_practice

Резюме:

Используйте случайное число в качестве токена серии, а другое - в качестве токена входа. Поместите их в cookie-файл Stay Logged In вместе с именем пользователя. Назначьте второй, нормальный Session cookie. Каждый раз, когда пользователь приходит без файла cookie сеанса, используйте файл cookie "Оставайтесь в системе". Выпустите новый, на этот раз с новым случайным токеном входа, оставив серийный токен таким же.

Зачем включать имя пользователя? Как это помогает? Токена серии должно быть достаточно для идентификации пользователя и серии. В этот подход был добавлен маркер серии, чтобы предотвратить DoS-атаку, когда злоумышленник просто угадывает все имена пользователей и сразу попадает на сайт, выводя всех из системы. Но почему имеет смысл вообще оставлять имя пользователя?

2 ответа

Имя пользователя и номер рассматриваются как пара на сервере перед выдачей нового сеансового cookie. Без имени пользователя это было бы менее безопасно (можно было бы воспроизвести, используя другого пользователя, если вы украли номер), и было бы труднее найти.

Мое предположение об этом:

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

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

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

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

Другие вопросы по тегам