Что такое cookie?

Что такое cookie?

Практическая Инженерия



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


пример работы

Разновидности куки

Сессионные куки

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

Постоянные куки

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

Защищенные куки

Защищенные куки могут быть переданы только через шифрованное соединение (то есть HTTPS). Они не могут передаваться по незащищенным соединениям. Чтобы защитить куки, необходимо добавить флаг Secure в файл куки.

HttpOnly-куки

К файлу HttpOnly-куки нельзя обращаться с помощью API на стороне клиента, таких как JavaScript. Это ограничение устраняет угрозу кражи куки с помощью кросс-сайтового скриптинга (XSS). Тем не менее, куки остается уязвимым для кросс-сайтовой трассировки (XST) и кросс-сайтовых поддельных запросов (XSRF).

Этот тип куки содержит флаг HttpOnly.

История куки

В июне 1994 года Лу Монтулли придумал использовать куки при веб-соединении. В то время он был сотрудником Netscape Communications, которая разрабатывала по заказу пакет электронной коммерции. Куки стали решением проблемы надёжной реализации виртуальной корзины покупок.

С помощью Джона Джаннандреа в тот же год Монтулли написал начальную спецификацию куки. Mosaic Netscape 0.9 beta, выпущенная 13 октября 1994 года, уже поддерживала куки. Куки впервые начали использоваться Netscape и определяли, посещал ли пользователь сайт ранее. Монтулли подал заявку на патент в 1995 году, а получил его только в 1998 году.

Хотя некоторые люди знали о существовании куки уже в первом квартале 1995 года, широкая общественность узнала о них лишь после статьи в «Financial Times» от 12 февраля 1996 года. В том же году куки оказались в центре внимания средств массовой информации, особенно из-за потенциальной угрозы приватности. Куки были рассмотрены в Федеральной комиссии по торговле США в двух слушаниях в 1996 и 1997 годах.

Развитие спецификаций куки на этом не остановилось. В частности, первые обсуждения формальной спецификации начались в апреле 1995 года. Была сформирована специальная рабочая группа в рамках IETF. В качестве отправной точки была выбрана спецификация Netscape. В феврале 1996 года рабочая группа определила сторонние куки как серьёзную угрозу приватности. Выработанная спецификация была выпущена под названием RFC 2109 в феврале 1997 года. В ней указывалось, что сторонние куки должны либо блокироваться, либо хотя бы не работать по умолчанию.

В то время рекламные компании уже вовсю использовали сторонние куки и рекомендации RFC 2109 не поддерживались ни в браузерах Netscape, ни в Internet Explorer. Позднее, в октябре 2000 года, RFC 2109 была заменена новой спецификацией RFC 2965.

На практике куки используются для:

  • аутентификации пользователя;
  • хранения персональных предпочтений и настроек пользователя;
  • отслеживания состояния сеанса доступа пользователя;
  • ведения статистики о пользователях.

Cookie идентифицируют браузеры, а не людей.

Сами по себе куки хранятся в виде текста, который не несет никакой опасности.

Report Page