Неудаляемый постоянный файл cookie для входа

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

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

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

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

Система не обязана быть на 100% неприступной, но это разумно.

PS: вам не нужно беспокоиться о других данных в файле cookie. Меня просто интересует часть "не воруй это печенье".

Редактировать 1: Недостаток в хешировании информации о клиенте, как мне ответили в другом месте, заключается в том, что злоумышленнику достаточно знать, что информация о клиенте используется, и копировать информацию о клиенте по мере кражи файла cookie. Конечно, это дополнительный шаг для злоумышленника, но не такой большой, как я себе представлял... Есть дополнительные мысли?


person Henrik Paul    schedule 23.08.2011    source источник


Ответы (1)


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

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

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

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

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

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

person Kim L    schedule 23.08.2011