Cookie

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.
  • Ну и чтобы моими предпочтениями не пользовались разные рекламные кампании.

Report Page