Cookie
Stasoz
Наверняка каждый слышал о “куки”. Но вот тех, кто знает, что куки означает и для чего используется, будет уже поменьше.
Все мы знаем, что сохранив пароль на сайте, в следующие разы вход может быть выполнен автоматически. Также могут сохранятся настройки, такие как: язык интерфейса, последние сообщения, товары, добавленные в корзину и любые другие настройки.
Но более того, такие сохраненные настройки, позволяют отслеживать действия пользователя и на основе этого настраивать рекламу по его интересам.
Из теории:
Куки - это небольшие текстовые данные (до 4096 байт) которые отправляются от сервера к пользователю и хранятся на компьютере пользователя. При следующих запросах пользователя, в заголовок запроса будут передаваться куки и говорить серверу что это за пользователь и какую информацию можно ему показать.
Также, это позволяет узнать, с одного ли браузера пришли оба запроса (например, для аутентификации пользователя). Они запоминают информацию о состоянии для протокола HTTP, который сам по себе этого делать не умеет.
Разберем несколько видов куки:
- сессионные - после закрытия веб-приложения куки автоматически очищаются; То есть простые куки существуют только на протяжении текущего сеанса, поскольку атрибуты Expires или Max-Age для него не задаются.
Однако, если в браузере включено автоматическое восстановление сеанса, что случается очень часто, cookie сеанса может храниться постоянно, как если бы браузер никогда не закрывался.
Пример: Cookie: yummy_cookie=choco; tasty_cookie=strawberry - постоянные - удаляются через какое-то время;
То есть, удаляются не с закрытием клиента, а при наступлении определенной даты (атрибут Expires) или после определенного интервала времени (атрибут Max-Age).
Пример: Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; - защищенные - или «безопасные» cookie отсылаются на сервер только если запрос выполняется по протоколу SSL и HTTPS.
Однако важные данные никогда не следует передавать или хранить в cookies, поскольку сам их механизм весьма уязвим в отношении безопасности, а флаг secure никакого дополнительного шифрования или средств защиты не обеспечивает.
Начиная с Chrome 52 и Firefox 52, незащищенные сайты (http:) не могут создавать куки с флагом secure.
Пример: Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly.
До недавнего времени cookie принято было использовать в качестве хранилища информации на стороне пользователя.
Это могло иметь смысл в отсутствии вариантов, но теперь, когда в распоряжении браузеров появились различные API (программные интерфейсы приложения) для хранения данных, это уже не так.
Из-за того, что cookie пересылаются с каждым запросом, они могут слишком сильно снижать производительность (особенно в мобильных устройствах). В качестве хранилищ данных на стороне пользователя вместо них можно использовать Web storage API и IndexedDB.
Что делать с этой информацией решаете вы. Я же систематически удаляю куки, чтобы:
- Не засорять место на компьютере.
- Другой человек не смог воспользоваться этими данными, если я выполнил вход в свой аккаунт с чужого ПК.
Атрибут HttpOnly помогает понизить эту угрозу, перекрывая доступ к кукам из JavaScript. - Ну и чтобы моими предпочтениями не пользовались разные рекламные кампании.