Можно ли копировать файлы cookie между компьютерами, чтобы выдавать себя за пользователя? - PullRequest
13 голосов
/ 15 января 2009

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

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

Ответы [ 4 ]

16 голосов
/ 15 января 2009

Абсолютно. Это один из способов, которыми атаки межсайтового скриптинга (XSS) работают:

  1. Я внедряю JavaScript на страницу
  2. Я жду, когда кто-нибудь заглянет на страницу
  3. Введенный мной javascript отправляет мне ваши куки
  4. Я вхожу как вы и делаю плохие вещи

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

5 голосов
/ 15 января 2009

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

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

1 голос
/ 03 марта 2010

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

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

0 голосов
/ 15 января 2009

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

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

...