Хэши или токены для файлов cookie "Запомнить меня"? - PullRequest
10 голосов
/ 25 ноября 2011

Когда дело доходит до помните меня куки, есть 2 различных подхода:

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

Tokens
Файл cookie Запомнить меня хранит случайную (бессмысленную), но уникальную строку, которая соответствует записи в таблице tokens , в которой хранится идентификатор пользователя.

Какой подход более безопасен и в чем его недостатки?

Ответы [ 3 ]

9 голосов
/ 25 ноября 2011

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

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

  2. Выдача этих токенов позволяет вашим пользователям (или вашему администратору, в случае необходимости) "выйти" из определенных сеансов, от которых они могут захотеть избавиться. Это действительно крутая функция, например, Google и Facebook используют ее.

Итак, если у вас есть время и бюджет: токены, абсолютно.

4 голосов
/ 25 ноября 2011

Обычно токен -> сопоставление пользователя защищен на стороне сервера.Таким образом, в конечном итоге ваша безопасность основана на обеспечении безопасности токена и обеспечении контроля его срока службы (например, срок его действия истекает и / или он действителен только в том случае, если он предоставлен вам с того же IP-адреса, что и исходный поставщик учетных данных - опять же,просто пример)

Безопасность аутентификации на основе токенов

Надеюсь, это поможет.

1 голос
/ 25 ноября 2011

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

С другой стороны, все помните меня, что пользователю не нужно снова регистрироваться, так что еслиони нажимают «Выйти из системы», и вам редко понадобится повторно создать новый токен, если он не истечет.

Полагаю, вам следует придерживаться токенов, а не жертвовать безопасностью из-за лени: -p

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