Рубріки: Теория

Что такое файлы cookies и для чего они нужны?

Сергей Рыльков

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

Содержание:
1. Что такое файлы cookies?
2. Назначение cookies
3. Принцип работы файлов cookies
4. История
5. Преимущества и недостатки cookies
6. Типы cookie
7. Как Google использует файлы cookie?
8. Безопасность
Итог

1. Что такое файлы cookies и для чего они нужны?

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

2. Назначение cookies

Файлы cookies«куки», переводится с английского как «печенье» изначально предназначены для улучшения удобства использования интернет-браузера. Со временем куки стали также использоваться и для других целей часто неофициально, таких, как сбор статистики использования сайта для таргетированной рекламы либо анализа работы сайта.

3. Принцип работы файлов cookies

Необходимость в куках обусловлена рядом задач, которые сложно или невозможно решить на основе «чистого» HTTP/HTML. Наиболее важная их которых — это реализация логики сессий. Предположим, вы зарегистрировались в каком-то интернет-магазине. Для совершения покупок вам необходимо войти в свой аккаунт (залогиниться), выбрать товары, добавить их в корзину, затем оформить заказ.

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

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

Вы можете закрыть сессию, выйдя из своего аккаунта, или она будет автоматически закрыта сервером через какое-то время. Надо отметить, что сессии связаны с используемым браузером: если зайти на сайт в другом браузере или на другом устройстве — будет создана отдельная сессия и придется пройти авторизацию еще раз. Без сессий для безопасного использования ресурса пришлось бы заново логиниться при загрузке каждой отдельной страницы сайта, что, мягко говоря, не очень удобно. Как правило, сессии реализуются на основе cookies.

Логика организации сессий на основе куков выглядит следующим образом:

  1. Пользователь открывает страницу авторизации сайта, вводит свой логин и пароль, которые затем отправляются на сервер.
  2. Сервер получает логин и пароль. Выполняет авторизацию. Если она прошла успешно, создает сессию и возвращает на сторону пользователя в HTTP-ответе уникальный идентификатор сессии для этого используется параметр «Set-Cookie».
  3. Браузер, получив в ответе от сервера идентификатор сессии, локально сохраняет его в cookie-файл на устройстве пользователя. И далее каждый раз, когда пользователь инициирует запрос к этому сайту, в параметре «Cookie» HTTP-запроса будет отправляться идентификатор сессии.
  4. Сервер, получив идентификатор сессии, автоматически проводит авторизацию пользователя и связывает его с активной сессией. Далее ответ сервера формируется в контексте активной сессии. Например, на возвращаемой странице при необходимости может отображаться имя пользователя, список товаров в его корзине, персональные цены на какие-то позиции и т.д. Если же сессия уже истекла, пользователю будет возвращена стандартная страница без персонализации либо страница с запросом авторизации.

Кроме реализации сессий, cookies применяются также и для других целей, таких как:

  • Личные настройки. В куках можно сохранять предпочтения пользователя по оформлению сайта: язык, темы оформления, геолокация, формат даты и времени, валюта, количество элементов на странице при отображении списков и т.д. При этом пользователю не требуется регистрироваться на сайте. Сервер сам запомнит в куках выбранные пользователем опции и затем будет применять их при каждом посещении сайта.
  • Оформление заказа в интернет-магазине без регистрации. В большинстве интернет-магазинов можно сразу добавить товар в корзину без необходимости регистрироваться на сайте. При последующем входе на страницу магазина содержимое корзины будет сохранено. Можно продолжить формировать заказ либо оформить покупку.
  • Быстрая загрузка сайтов. В куках можно сохранять служебную информацию, которая затем используется для ускорения повторной загрузки сайтане будем обсуждать здесь подробности подобных техник, это выходит за пределы основной темы статьи.
  • Сбор статистики, таргетированная реклама. С помощью куков формируется статистика о посещении сайтов и предпочтениях пользователя. За счет этого реклама на сайте может быть ориентирована на конкретного пользователя (таргетирование).
  • Анализ качества работы сайта. Используя статистику посещения, разработчики могут выявлять ошибки в работе сайта и неудачные решения в дизайне интерфейса, чтобы затем исправить их.

4. История

Куки изобрел в 1994 году программист Лу Монтулли. Куки использовались в разработанном его компанией ПО для электронной торговли. Они были нужны для реализации виртуальной корзины покупок. Позднее в том же 1994 году он совместно с Джоном Джаннандреа написал и первую версию стандарта.

12 февраля 1996 года вышла публикация в газете Financial Times, после которой cookies получили массовою известность. В результате они попали под прицел СМИ в связи с потенциальной угрозой конфиденциальности.

Тем не менее, развитие стандарта куки продолжилось, и в 1997 году он вышел в виде RFC 2109. В 2000 году RFC 2109 заменили новой спецификацией RFC 2965.

Существует несколько версий происхождения термина «cookies».

аиболее красивая из них — это теория Гензель и Гретель. В основе ее — сказка «Пряничный домик» о заблудившихся в лесу детях Гензель и Гретель. Дети запоминали свой лесной маршрут, бросая крошки печенья. Эта история отлично иллюстрирует, что cookie могут запоминать активности пользователя.

Еще есть теория волшебного печенья. Она утверждает, что термин «cookies» произошел от другого программистского термина «Magic cookies» — небольшого фрагмента данных, передаваемого между программами для обозначения транзакции или события.

Теория Cookie Monster утверждает, что слово «cookies» использовалось для перезапуска компьютерной системы в некоей неназванной компании. Ну и в качестве вишенки на торте — за звание первоисточника названия для «интернет-печенек» также сражается традиционное китайское печенье с предсказаниями.

5. Преимущества и недостатки cookies

Основное преимущество cookies в том, что столь широкий спектр применения (см. выше раздел «Принцип работы файлов cookies») обеспечивается одной универсальной и исключительно простой технологией.

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

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

6. Типы cookie

Сессионные.

По-другому их еще называют временные. Хранят данные о пользователе, только пока он находится на сайте. После завершения сессии (закрытие браузера) cookies автоматически удаляются.

Постоянные.

Постоянные куки остаются на устройстве пользователя длительное время. Они не удаляются после того, как сессия закрылась. Но у некоторых сайтов есть временные ограничения: если вы какое-то время после регистрации не заходите на ресурс, в следующий раз вам придется снова вводить данные.

Сторонние.

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

Супер-cookies.

Это файлы, которые записываются источником более высокого доменного имени. Например, вы находитесь на сайте test.example.ua, но ваши cookie были записаны example.ua, то есть доменом более высокого уровня. Как правило, такая запись является брешью в безопасности. При перехвате пакета сведений они могут использоваться для подделки логинов, изменения или хищения пользовательской информации. Поисковые системы могут блокировать ресурсы с такими cookies.

Зомби (evercookie, или не удаляемые cookie).

Даже после принудительного стирания этих фрагментов историй из браузера они все равно могут быть восстановлены программным путем и использованы различными сторонними системами. Поисковики стараются блокировать ресурсы, которые записывают информацию подобным нестандартным и потенциально опасным способом.

7. Как Google использует файлы cookie?

Для примера рассмотрим, как использует cookies компания Google. С этой информацией можно ознакомиться, зайдя на страницу Google «Политика конфиденциальности и условия использования». Из этого материала следует, что компания Google использует следующие типы cookies:

  • Функциональные возможности. Куки для хранения пользовательских настроек. Это выбранный язык, параметры безопасного поиска, желаемое число результатов на странице. Также к ним относятся куки для поддержки сеанса и куки для оптимизации работы сайта.
  • Безопасность. Используются для предотвращения спама, мошенничества и других злоупотреблений.
  • Аналитика. Куки для сбора аналитики. Прежде всего это статистика по взаимодействию пользователя с тем или иным сервисом Google.
  • Реклама. Настроить параметры персонализации рекламы можно на странице «Настройки рекламных предпочтений». Если включена персонализация рекламы, то для запоминания этого параметра будет использоваться cookie-файл. Также куки используются для сбора рекламной статистики, оценки эффективности рекламы и т.д.
  • Персонализация. На странице «Данные и конфиденциальность» можно выбрать настройки конфиденциальности, где пользователь может указать предпочитаемый контент и то, какая информация о нем будет видна другим пользователям. Для оптимизации рекомендаций могут быть использованы куки. Например, это может быть персонализация строк автозаполнения в поисковых запросах, создаваемая на основе анализа последних просмотров пользователя.

Настройка использования некоторых типов файлов cookie может быть выполнена на странице «Данные и конфиденциальность». Большинство браузеров, в том числе и Google Сhrome, позволяют отключить использование cookies. Также все текущие куки удаляются после закрытии окон, открытых в режиме инкогнито.

8. Безопасность

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

Как правило, данные, которые хранят куки, подвергаются шифрованию перед отправкой, а соединение устанавливают по безопасному протоколу, например, HTTPS. В таком случае с большой вероятностью пользовательские данные защищены, но шифрование и безопасная отправка отданы на откуп программисту, отвечающему за разработку сайта. Пользователям приходится только надеяться, что все сделано грамотно. Со своей стороны посетитель может только запретить браузеру использовать куки или время от времени чистить их самостоятельно.

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

Итог

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

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

Однозначного ответа, использовать или запретить куки, к сожалению, нет. Каждую ситуацию надо разбирать индивидуально, и решение здесь остается за конкретным пользователем. В современном мире у вас вряд ли получится отказаться от них, несмотря на потенциальную опасность. Хорошая новость в том, что современные браузеры и интернет-службы имеют гибкие инструменты для настройки кук под себя.

Более подробную информацию по кукам можно получить в этом тематическом ролике:

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023