Когда заходите на разные сайты, на них то и дело всплывают сообщения о cookie. Чаще всего, чтобы спокойно что-то читать или смотреть дальше, нужно разрешить сервису операции с ними. Большинство людей просто делают это автоматически, особо не задумываясь. Но на что мы в действительности соглашаемся?
Что это такое?
Cookie – это текстовые файлы, которыми конкретный сервис обменивается с вашим браузером. В них сохраняется общая информация о посетителе: зарегистрирован ли он, добавлял ли какие-то страницы в избранное, чем непосредственно интересуется, в каких разделах сайта больше проводит времени. Конкретика уже зависит от того, что именно способен отслеживать каждый сайт.
Зачем нужно?
Такие файлы позволяют адаптировать сайт под пользователя. В частности, от этого во многом зависит предлагаемая реклама. Также благодаря cookie сохраняются персональные настройки конкретного пользователя. Например, он может не хотеть, чтобы ему показывали определённый контент. Есть ещё настройки, касающиеся дизайна и юзабилити сайта.
Как cookie-файлы следят за нами? | РАЗБОР
Некоторые ресурсы не способны эффективно работать без файлов cookie. То есть открываться такие сайты будут, однако большинство возможностей окажется заблокированным. К тому же иногда сервисы без cookie начинают работать некорректно, хотя это уже зависит от профессионализма вебмастера, который настраивал такой ресурс.
Почему сайты просят разрешение?
Многих раздражаю эти бесконечные всплывающие окна с вопросами по поводу cookie. Большинство потребителей не понимает, для чего нужно задавать такие вопросы. На самом деле есть закон ЕС о защите персональных данных от 2016 года, который вступил в силу с 2018. В нём указано, что сайты не имеют права следить за пользователями и записывать о них какие-то данные без разрешения таких лиц.
Дело в том, что в cookie может храниться довольно много информации, в том числе и личной. Сайты собирают о пользователях далеко не одинаковый объём данных. У некоторых ресурсов со временем появляется целая база с внушительным объёмом информации о вас.
Предполагается, что такие сведения могут быть использованы против пользователя. Поэтому законодательство ЕС требует получать сначала разрешение. И если вы его не дадите, то сайт не имеет права сохранять о вас какую-либо информацию. В противном случае такой ресурс ждёт штраф размером 300 тысяч евро.
Всё это не касается российского виртуального пространства. У нас есть свои законы, которые позволяют отслеживать то, как именно оператор обращается с данными. Однако большинство мастеров использует единые шаблоны сайтов и не хотят ничего переделывать. А многие раскручивают ресурсы в том числе и в европейском сегменте и решают, что лучше перестраховаться. В любом случае вопрос по поводу cookie – это в первую очередь забота о вас.
Источник: dzen.ru
Что такое куки (cookies). Объясняем простыми словами
Куки (cookies) — это хранящиеся на компьютерах и гаджетах небольшие файлы, c помощью которых сайт запоминает информацию о посещениях пользователя.
Что такое файлы cookie
Проще говоря, когда пользователь совершает на сайте какое-то действие, например добавляет товар в корзину или вводит логин и пароль для входа в аккаунт, сервер записывает эту информацию в куки и отправляет браузеру вместе со страницей. Эти и другие сведения о различных действиях собираются в текстовом документе cookies.txt.
Благодаря кукам при каждом посещении того или иного ресурса не нужно вводить регистрационные данные — браузер их подгружает самостоятельно. Поэтому нагрузка не сервер не возрастает и повышается скорость открытия веб-страниц.
Сами по себе куки не опасны — это обычные текстовые файлы. Они не могут запускать какие-либо процессы на компьютере и каким-то образом влиять на работу операционной системы.
В то же время куки, в частности, умеют запоминать:
- в какое время и с какого устройства человек заходил на страницу;
- предпочтения пользователей (например, язык, валюта или размер шрифта);
- товары, которые просматривались или добавлялись в корзину, даже если пользователь временно вышел из интернет-магазина;
- текст, который мы вводили на сайте раньше;
- IP-адрес и местоположение пользователя;
- дату и время посещения сайта;
- версию операционной системы и браузера;
- клики и переходы.
Например, в Google утверждают, что используют файлы cookie, чтобы:
- настраивать предпочтения пользователя по рекламе, в том числе персонализировать и показывать на внешних сайтах рекламные объявления;
- предоставлять пользователю подходящие ему функции и контент (например, для музыкального сервиса YouTube Music сохраняются данные о параметрах громкости, режима повтора и автовоспроизведения);
- защищать персональные данные;
- подсчитывать количество посещений страницы;
- выявлять и устранять проблемы в работе сайта;
- предотвращать мошенничество, спам и другие злоупотребления;
- собирать данные для аналитики, по которым владельцы сервисов и сайтов могут определять, как пользователи взаимодействуют с ними.
Пример употребления на «Секрете»
«Cookies не относятся к персональным данным, так как в соответствии с законом персональные данные — это любая информация, которая позволяет идентифицировать человека. Даже фамилия, имя и отчество могут не являться персональными данными, если требуются дополнительные сведения, чтобы определить личность человека. Не говоря уже о cookies».
(Основатель и генеральный директор Nethouse Денис Имшенецкий — о работе с персональными данными.)
Нюансы
В большинстве современных браузеров пользователи могут управлять тем, как используются файлы cookie на отдельных сайтах, а также удалять их. Со временем куки накапливаются и могут занимать гигабайты на жёстком диске. Поэтому раз в несколько месяцев полезно удалять их хотя бы для тех сайтов, которые посещаются редко. Совсем отключать куки — не самая хорошая идея. Чистить куки вручную практичнее, но после этого придётся заново настраивать персональные параметры сайтов и входить в аккаунты.
Некоторые куки могут оставаться на компьютере в течение нескольких месяцев, а некоторые удаляются при завершении сессии. Если долго не посещать какую-либо соцсеть, пользователю придётся пройти авторизацию, поскольку сохранённые файлы с логином и паролем к этому моменту уже автоматически очистятся.
Виды cookies
Выделяют два основных вида cookies:
- сессионные (временные) — данные о просмотренных страницах, записи форм заказов и другая информация, позволяющая клиентам упростить работу с сайтом. Существуют только в период времени, когда пользователь находится на сайте, и удаляются сразу же после прекращения сеанса, то есть вслед за тем, как закроется вкладка. После закрытия вкладки временные файлы автоматически удаляются;
- постоянные — хранят долгосрочную информацию в течение нескольких недель или месяцев, например логин от учетной записи. Они не удаляются после окончания взаимодействия с сайтом.
Куки — это мощный источник аналитической информации, необходимой рекламодателям. Опираясь на персональные предпочтения и сведения об активности, на сайтах будет формироваться индивидуальная реклама. То есть на одном и том же сайте разным посетителям в рекламных блоках будут предлагаться разные товары. Кому-то — новые кроссовки, а кому-то — фены. По сути, владельцы сайтов просто вставляют у себя код того или иного посредника в рекламных блоках.
Факт
Заходя на большинство сайтов, можно видеть всплывающее окно предупреждения о сборе файлов cookies или просьбой разрешить собирать эти данные. Такая процедура стала обязательной после ужесточения закона Евросоюза о cookies.
Источник: secretmag.ru
[Перевод] Всё о файлах cookie и их безопасности
HTTP является протоколом без статических данных, что означает, что он не может различать два последовательных запроса, исходящих от одного и того же компьютера, сети или пользователя. Это было основной проблемой. Из-за этого пользователь не мог поддерживать свою сессию, и если бы мы продолжили в том же духе, интернет стал бы таким же, каким он был десять лет назад, состоящим только из кучи статичных html-страниц. Никаких учетных записей пользователей, никакой настройки и т.д., а если и есть какие-то учетные записи, то для доступа к каждой странице нужно снова и снова входить в систему.
Чтобы решить эту проблему, HTTP нужно было сделать с сохранением состояния. Ответом стал файл cookie. В отличие от cookie, которые вы получаете, это небольшие файлы, создаваемые веб-сайтом, который вы посещаете. Они генерируются веб-приложениями и хранятся в вашем браузере в виде пар ключ-значение.
Примером может служить PHPSESSID: xyjaez1081lze23, lang: en.
Давайте разберемся в этом на примере. Предположим, вы пошли в магазин и принесли оттуда посуду. Придя домой, вы обнаруживаете, что один из них сломан. Тогда вы идете к владельцу магазина и рассказываете ему о своей проблеме. Но, к вашему ужасу, он отвечает, что не знает вас. Таково было исходное состояние HTTP без файлов cookie.
Веб-сервер не узнает вас при любом раскладе.
Теперь рассмотрим другой сценарий. Владелец магазина дает вам чек. На чеке есть номер. Этот номер уникален и может быть использован для вашего опознания. У него также есть копия номера, хранящаяся в его компьютере. Когда вы возвращаетесь в магазин, он просит вас предъявить чек. Он сверяет номер с номером на своем компьютере. После этого он узнает вас.
Это именно то, что делает cookies, и ничем не отличается от чека, используемого для вашего запоминания.
Они также могут использоваться по различным причинам. Например:
- Чтобы запомнить ваши языковые предпочтения. Например, вышеуказанный файл cookie lang был установлен на en. Поскольку они были сохранены в вашем браузере, они будут отправлены на сайт, который сохранил их в первую очередь. Это веб-приложение разберет его и отправит вам английскую версию сайта.
- Для отслеживания вас. Они также могут использоваться для отслеживания вашей страны, города и т.д.
- Количество раз, когда вы обращались к бесплатной услуге.
- И самое важное — для сохранения данных о вашей сессии.
Какие различные флаги используются в файле Cookie?
Это могут быть небольшие файлы, но каждый Cookie сам по себе имеет сложную структуру. Сложной ее делают различные флаги, которые могут присутствовать в каждом куки. Эти флаги — не что иное, как атрибуты cookies, предназначенные для различных целей, или просто названия значений, которые могут быть использованы для идентификации этих чисел.
Давайте вкратце рассмотрим все флаги.
- Secure: Может быть установлен либо в true, либо в false. Если установлено значение true, cookie будет отправляться только при соединении HTTPS. Это может быть использовано для снижения риска атаки MITM, при которой злоумышленник заставляет пользователя просматривать сайт по протоколу HTTP. Если этот флаг установлен, cookie не будет передаваться по HTTP.
- HttpOnly: Если установлено значение true, JavaScript на стороне клиента не сможет получить доступ к файлу cookie. Это может быть использовано для сохранения cookie от XSS-атаки, которая крадет cookie. Таким образом, javascript на стороне клиента не сможет получить доступ к cookie.
- Domain: Содержит домен или поддомен, на который может быть отправлен файл cookie.
- Path: На каждом пути могут быть разные вещи. Если разработчик хочет установить разные cookie для каждого пути, он может использовать атрибут path для достижения этой цели.
- Expires: Используется для определения срока действия cookie.
- SamePath: Используется для определения условий, когда cookie могут быть отправлены при межсайтовых запросах.
Что такое атрибут domain и как он используется в Cookie?
Теперь давайте подробнее рассмотрим атрибут domain в cookie. Как следует из названия, он используется для хранения имени домена и поддомена. Оно может использоваться браузерами для определения того, на какой домен/поддомен нужно отправить cookie, а от какого следует воздержаться.
Также можно считать, что это определяет область применения cookie. Веб-приложение может иметь несколько субдоменов, и каждый субдомен может установить свой собственный файл cookie.
Предположим, что сайт www.example.com имеет 4 поддомена, и на каждом поддомене работает свой сайт на разных фреймворках. Они устанавливают свои собственные файлы cookie.
Приведенная ниже таблица хорошо это объясняет.
Cookies для соответствующих субдоменов
Так, если вы посетите сайт www.example.com, веб-приложение передаст вам PHPSESSID: wwwexample1 в виде cookie. Он будет сохранен вашим браузером, и когда вы отправите запрос обратно на www.example.com, ваш браузер отправит точно такой же файл cookie на веб-сервер. По сути, он определил атрибут домена в cookie, и если вы посещаете тот же домен, который указан в cookie, cookie будет включен в запрос.
Если вы посетите сайт sub1.example.com, веб-приложение установит, например, JSPSESSID: sub1.example2 в качестве файла cookie. Хотя домены одинаковые, то есть example.com, но субдомены разные. Таким образом, если вы отправляете запрос на сайт sub1.example.com, ваш браузер отправит JSPSESSID:sub1example2 в качестве cookie на веб-сервер.
Same Site Cookie
Это новый атрибут, который сейчас используется современными браузерами.
Давайте сначала разберемся, что такое first party и third-party cookies:
first-party cookie — это cookie, который устанавливается веб-сайтом, имеющим то же имя, что и домен, который в данный момент посещается, как отображается в адресной строке браузера. third-party cookie — это файл, который исходит от домена, отличного от того, на котором в данный момент находится пользователь.
Таким образом, атрибут «same site» устраняет пару уязвимостей, использующих атрибут domain в cookie (если запрос отправляется на домен, указанный в cookie, то cookie автоматически включается), таких как CSRF.
Так, если пользователь перенаправляется с сайта abc.com на сайт bcd.com, а в браузере есть cookie с доменом bcd.com, он будет автоматически включен в запрос перенаправления. Но если установлен атрибут cookie того же сайта, cookie не будет включен в запрос перенаправления.
В атрибуте same site есть два флага.
Strict
Если установлен атрибут strict, то даже когда пользователь переходит по обычной ссылке, опция strict запрещает браузеру передавать cookie на целевой сайт.
Lax
Значение lax является хорошим балансом между безопасностью и удобством использования для сайтов, которые хотят, чтобы пользователи оставались в системе после перехода по внешней ссылке. Таким образом, если пользователь переходит по обычной ссылке, cookie будет включен в запрос.
Заключение
Файлы cookie внесли значительный вклад в обеспечение прозрачности веб-сайтов, но они также увеличивают площадь атаки. Они могут использоваться противниками для получения контроля над привилегированными функциями, выполнения SQL-инъекций, перехвата сессий и захвата учетных записей. Конечно, все это в значительной степени зависит от типа приложения и функциональности, предоставляемой веб-приложением, и его зависимости от файлов cookie. Бывали случаи, когда злоумышленникам удавалось получить доступ к скрытым функциям, доступным только администраторам, просто подменив значения в cookies.
Как разработчик вы должны проверить, какие функциональные возможности предоставляет веб-приложение и как файлы cookie интегрированы с веб-приложением. Cookies, особенно сессионные, должны быть трудноуловимыми, а соответствующие флаги/атрибуты должны быть установлены в соответствии с вашими потребностями.
Оригинал статьи — здесь.
Поддержите автора хлопками на Medium.
Перевод статьи был выполнен проектом перевод энтузиаста:
- cookie
- перевод
- translate
- информационная безопасность
- безопасность
Источник: habr.com