Могут ли файлы cookie копироваться между машинами для олицетворения пользователя?

У нас есть приложение, которое помимо прочего проверяет наличие куки файла и читает и расшифровывает содержимое файла cookie. Хотя данные, хранящиеся внутри файла cookie, нечувствительны, он шифруется с помощью шифрования TripleDes. Сегодня встал вопрос о том, может ли файл cookie, сохраненный на одном ПК, копироваться на другой компьютер и будет ли веб-приложение обнаруживать наличие этого скопированного файла cookie на другом компьютере и, в конечном счете, расшифровывать то, что оно будет иметь на исходном ПК.

Мой вопрос таков: Мы используем стандартную реализацию ASP.NET для сохранения cookie файлов (например, через HttpResponse), делает ли файл index.dat предотвращение пересадки файла cookie с одной машины на другую? Что делать, если файл index.dat также был перенесен и скопирован, или есть внутренняя структура внутри index.dat, которая связывает куки файл с конкретной машиной?

Ответ 1

Совершенно верно. Это один из способов, с помощью которых атаки межсайтовых скриптов (XSS):

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

Этот конкретный вопрос бит SO во время частной бета-версии.

Ответ 2

Да, кража файлов cookie является обычной техникой кражи сеанса у пользователя.

Некоторые сайты пытаются привязать куки файл к IP-адресу клиента, но это не удается в случае крупных корпоративных прокси-серверов с несколькими внешними интерфейсами или других нерезидентных настроек.

Ответ 3

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

Например, просто клонируйте диск, если необходимо!

Ответ 4

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

Это связано с идеей подтверждения ввода как на клиенте, так и на сервере. Не верьте, что проверка на клиенте была выполнена.