
- •Работа куки [править]Установка куки
- •[Править]Условия истечения срока хранения
- •[Править]Аутентификация
- •[Править]Приватность и сторонние куки
- •[Править]Недостатки куки
- •[Править]Неточная идентификация
- •[Править]Кража куки
- •[Править]Подмена куки
- •[Править]Межсайтовые куки
- •[Править]Срок действия куки
[Править]Недостатки куки
Помимо проблем конфиденциальности, куки имеют и некоторые технические недостатки. В частности, они не всегда точно идентифицируют пользователя и могут быть причиной атак злоумышленников.
[Править]Неточная идентификация
Если на компьютере используется более одного браузера, то, как правило, каждый имеет отдельное хранилище для куки. Поэтому куки идентифицируют не человека, а сочетание учётной записи, компьютера, и браузера. Таким образом, любой человек, который использует несколько учётных записей, компьютеров или браузеров, имеет несколько наборов куки.
Аналогично, куки не различают пользователей, пользующихся одним компьютером и браузером, если не используются разные учётные записи в операционной системе.
[Править]Кража куки
Во время нормальной эксплуатации сервер и браузер пользователя постоянно обмениваются куки. Поскольку куки могут содержать конфиденциальную информацию (имя пользователя, условия доступа и т. д.), их содержимое не должно быть доступно другим. Кража куки — это акт несанкционированного перехвата куки посторонними.
Куки могут быть украдены другим компьютером, читающим трафик сети.
Куки могут быть украдены с помощью анализа трафика — это называется взломом сессии. Сетевой трафик может быть перехвачен и прочитан не только его отправителем и получателем (особенно в публичных сетях Wi-Fi). Этот трафик включает в себя и куки, передаваемые через незашифрованные HTTP-сессии. Там, где сетевой трафик не шифруется, злоумышленники могут прочесть сообщения пользователей сети, в том числе их куки, используя программы, называемые снифферами.
Эта проблема может быть решена путём установления между пользователем и сервером шифрованного соединения с использованием протокола HTTPS. Сервер также может использовать специальный флаг при установке куки, после чего браузер будет передавать их только по надёжному каналу, например, через SSL-соединение.[6]
Однако большое число веб-сайтов, даже использующих безопасные HTTPS-сессии для идентификации пользователя, затем отправляют куки и другие данные более простым незашифрованным HTTP-соединением. Злоумышленники могут легко перехватить куки других пользователей и использовать их на соответствующих веб-сайтах.[27]
Межсайтовый скриптинг: куки должны обмениваться лишь между сервером и клиентом, а отправляются третьей стороне.
Для того чтобы гарантировать передачу куки только через HTTPS-сессию, куки должны иметь атрибут Secure.
Другой способ кражи куки — межсайтовый скриптинг и несанкционированная отправка куки на серверы, которые не должны получать их. Современные браузеры могут исполнять фрагменты кода, полученные с сервера. Если куки доступны во время этого исполнения, их содержимое может в той или иной форме оказаться на серверах, которые не должны получать к ним доступ. Шифрование куки не поможет в этом случае.[28]
Следующий вид межсайтового скриптинга, как правило, используют на сайтах, где пользователям разрешено отправлять сообщения с HTML-содержимым. При вставке соответствующего PHP/Javascript -кода в сообщение атакующий может получить куки других пользователей.
Эти атаки можно предотвратить установкой флага HttpOnly,[29] делающей куки недоступными для скриптов со стороны клиента. Тем не менее, веб-разработчики должны предусматривать защиту от межсайтового скриптинга на стадии разработки веб-сайтов.[30]