Сейф "Запомнить меня" в веб-приложении - PullRequest
3 голосов
/ 24 марта 2012

Я новичок в webdev в ASP.net.

Моя проблема заключается в том, как обеспечить безопасную функциональность «Запомнить меня». В данный момент я сериализую объект в cookie для аутентификации пользователя в будущем.

Но теперь я подумал, что если кто-то скопирует мой файл cookie, он сможет войти в систему с учетной записью взломанного человека. Существует ли более безопасная версия запоминания имени пользователя между сеансами?

С наилучшими пожеланиями

Ответы [ 2 ]

3 голосов
/ 25 марта 2012

Файл cookie "Запомнить меня" обычно содержит долгоживущий сеансовый ключ. Вы можете усложнить использование украденного файла cookie, сохранив дополнительную информацию о компьютерной среде, в которой файл cookie был изначально создан, и проверьте эту информацию, прежде чем принять файл cookie. Это называется «снятие отпечатков пальцев с устройства». Это может быть довольно точно, но это не очень легко сделать и не на 100% безопасно.

ip-номер может быть частью отпечатка пальца устройства, но ip-номера на мобильных устройствах меняются очень часто, так что это значительно уменьшит ценность cookie. Вы можете проверить поля заголовка http, такие как «User-Agent», «Accept», «Accept-Language» и т. Д. Эти поля обычно будут разными в двух разных браузерах. Вы можете использовать JavaScript и проверить версию ОС, версию Java и т. Д. И т. Д.

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

PS: Также помните, что пользователь должен иметь возможность деактивировать cookie-файл Remember-Me-Cookie, если он знает, что cookie-файл утерян, т.е. если его компьютер украден.

0 голосов
/ 24 марта 2012

Вы можете сохранить некоторую дополнительную информацию в файле cookie, например, IP-адрес клиента.

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