Нестабильный постоянный файл cookie для входа - PullRequest
1 голос
/ 23 августа 2011

Прочитав такие статьи, как http://jaspan.com/improved_persistent_login_cookie_best_practice Мне интересно, есть ли достаточно хороший способ добиться этого.

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

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

Я на правильном пути?Есть ли де-факто способ сделать это?

Система не должна быть на 100% неуязвимой, просто так.

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

1 Ответ

3 голосов
/ 23 августа 2011

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

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

Вы упомянули, что о безопасных файлах cookie в вашем случае не может быть и речи, но я хочу отметить это для дальнейшего использования другими читателями.Убедитесь, что ваш сайт использует HTTPS полностью, таким образом вы обеспечите безопасность трафика на вашем сайте, даже если пользователь использует незашифрованный беспроводной доступ в Интернет.

Убедитесь, что ваш сайт определяет правильный домен и путьдля файлов cookie, другими словами, убедитесь, что файлы cookie не отправляются в ту часть домена, которая не должна получать доступ к файлам cookie.

Включите HttpOnly в ваших файлах cookie.Это означает, что ваши куки отправляются только по HTTP (S) запросам и не могут быть прочитаны, например, с помощью JavaScript.Это снизит вероятность кражи файлов cookie пользователя с помощью XSS.

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

...