Cookies файлы принцип работы на сервере. Что такое cookie и как почистить куки в современных браузерах

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

Так или иначе, технология cookie значительно облегчает пользование Интернетом, делает работу с WEB страницами удобнее для пользователей и помогает WEB мастерам собирать более точные сведения о посетителях сайтов.

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

Такие определения в прессе очень распространены, но ни одно из них не имеет ничего общего с действительностью. Файлы cookie - это вовсе не программы. Их нельзя запустить, как приложение, поэтому они не могут самостоятельно собирать какие бы то ни было сведения.

Определение cookie

Вот настоящее определение технологии cookie: файлы cookie - это фрагменты текста, позволяющие WEB сайтам сохранять на компьютере пользователя определенные сведения для последующего к ним обращения. Данные хранятся в виде пар «имя - значение». К примеру, многие WEB сайты присваивают всем своим посетителям уникальные идентификационные номера и хранят эти номера на компьютерах пользователей в файлах cookie.

Пользователи Microsoft могут собственными глазами полюбоваться на файлы cookie, сохраненные на локальном компьютере в папке «c:windowscookies». Например, на моем жестком диске хранятся 165 файлов cookie, каждый из которых представляет собой простой текстовый файл, содержащий в себе несколько пар «имя - значение», по файлу на каждый посещенный мною WEB сайт.

Все это, как видите, обычные текстовые файлы, а никак не программы. В имени файла упоминается название создавшего его сайта. Те же сведения содержатся и в самом тексте. Открыть файл cookie, как и любой другой, можно двойным щелчком.

Рассмотрим, к примеру, файл cookie для сайта goto.com. В нем содержатся следующие данные:

  • UserID A9A3BECE0563982D goto.com

Сайт goto.com сохранил на моем компьютере всего одну пару «имя - значение». Имя в данном случае - «UserID», а значение - «A9A3BECE0563982D». Следовательно, когда я в впервые посетил goto.com, сайт присвоил мне уникальный идентификационный номер и сохранил его на моем компьютере. (Обратите внимание - помимо трех упомянутых значений, в файле могут содержаться и другие: это служебные данные браузера).

Amazon.com хранит на моей машине более подробные сведения:

  • session-id-time 954242000 amazon.com/
  • session-id 002-4135256-7625846 amazon.com/
  • x-main eKQIfwnxuF7qtmX52 x 6VWAXh@Ih6Uo5H amazon.com/
  • ubid-main 077-9263437-9645324 amazon.com/

Получается, Amazon сохраняет в файле cookie основной идентификационный номер пользователя, идентификационный номер и время начала каждого сеанса, а также значение «x-main», которое может содержать любые другие данные.

Большинство сайтов хранит на локальном компьютере только идентификационный номер пользователя, но в принципе, количество пар «имя - значение» в файле cookie не ограничено.

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

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

Куки-файлы: что это?

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

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

    Использование cookies значительно облегчает серфинг во Всемирной Паутине, но создает дополнительную угрозу личным данным пользователя.

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

    Что такое куки в браузере?

    Данные элементы в памяти компьютера хранят такую информацию о человеке:

    • Имена пользователя и пароли, которые вводятся в формы веб-сайтов;
    • Индивидуальные настройки;
    • Отслеживание поведения клиента;
    • Статистические данные;
    • Информацию о конкретной сессии.

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

    Куки можно условно разделить на постоянные непостоянные:

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

    Преимущества cookies

    Куки применяются в различных компьютерных программах во уже на протяжении двух десятков лет. За такой длительный срок они успели себя зарекомендовать в качестве эффективного инструмента для решения таких задач:

  • Сохранение индивидуальных настроек на достаточно долгое время. Пользователь избавлен от необходимости раз за разом вводить логин и пароль. В результате освобождается время для более продуктивного серфинга по сети;
  • Интернет-ресурсы используют следящие файлы для изучения поведения клиента. Каждый сайт индивидуализируется и приспосабливается под потребности конкретной личности. Это удобно как компаниям, повышающим конверсию, так и обычным юзерам, которые могут теперь найти информацию гораздо быстрее;
  • Реклама становится более таргетированной: при показе объявления учитываются история запросов, пол, индивидуальное поведение клиента. Так отсеивается ненужный рекламный мусор, показываются только те товары, которые будут действительно интересны;
  • Работа с некоторыми сайтами в принципе невозможна без cookies. Среди них практически все интернет-магазины.
  • Недостатки cookies

    Эта технология, значительно облегчающая жизнь обычного пользователя сети, не лишена ряда недостатков. Среди самых значимых претензий, предъявляемых браузерному «печенью »:

    • Просчеты в области безопасности. Информацию, которую сервер пересылает на машину клиента для временного хранения, относительно легко перехватить. В большинстве случаев пользователи не используют для доступа ко Всемирной Паутине зашифрованные соединения, поэтому они становятся легкой добычей мошенников. В случае попадания данных из cookie в руки злоумышленников, последние могут узнать многое о посещениях сайтов и особенностях поведения человека в сети;
    • Смысл их существования сводится практически на нет, если параллельно используются несколько обозревателей. Каждый из них хранит свои временные файлы, которые никак между собой не пересекаются;
    • Значительная часть пользователей убеждена, что куки являются программными файлами, которые могут самовольно удалять информацию с накопителя ПК. Некоторые утверждают, что они предназначены исключительно для рекламы или спама. Все эти опасения являются не более чем заблуждениями .

    Меры предосторожности при веб-серфинге

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

    Во избежание слежки и кражи конфиденциальной информации, можно настроить обозреватель так, чтобы:

    • Куки никогда не записывались;
    • Следящие файлы подлежали автоматическому удалению после закрытия интернет-обозревателя;
    • Запретить отправку данных с компьютера на сервера некоторых подозрительных сайтов;
    • Установить короткий временной промежуток для хранения следящей информации.

    Периодически нужно производить принудительную чистку браузера. Однако чтобы удалить содержимое папок, нужно знать, где они находятся. В помощь начинающим пользователям были разработаны специальные программы (например, CCleaner), которые производят анализ и удаление cookie по нажатию одной кнопки.

    Что такое куки и кэш?

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

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

    Однако подгрузка не из веба, а с ПК может привести к тому, что «картинка» на экране будет неактуальной. Кроме того, папка с кешем занимает немало места, поскольку все ее содержимое представляет собой медиафайлы.

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

    Видео: как освободить место и удалить куки?

    В данном ролике мастер Антон Прохоров расскажет, как можно почистить кэш и куки в браузере Google Chrome:

    Откуда возник термин "cookie" никто достоверно не знает, хотя считается, что во времена зарождения Unix-систем где-то использовалось словосочетание Magic Cookies. Имелись в виду "квитанции" (token, ticket), которыми обменивались программы.

    Cookie является решением одной из наследственных проблем HTTP протокола (HyperText Transfer Protocol). Эта проблема заключается в непостоянстве соединения между клиентом и сервером, как при FTP или Telnet сессии, т.е. для каждого документа (или файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение cookie в HTTP протокол дало частичное решение этой проблемы. Иначе говоря, транзакция завершается после того, как браузер сделал запрос, а сервер выдал соответствующий ответ. Сразу после этого сервер "забывает" о пользователе и каждый следующий запрос того же пользователя считает новым пользователем.

    Используя cookie, можно эмулировать сессию по HTTP протоколу. Коротко принцип эмуляции сессии таков: на первом запросе выдается соотвествующее значение cookie, а при каждом последующем запросе это значение читается из переменной окружения HTTP_COOKIE и соответствующим образом обрабатывается.

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

    Cookie - это небольшая порция текстовой информации, которую сервер передает браузеру. Браузер будет хранить эту информацию и передавать ее серверу с каждым запросом как часть HTTP заголовка. Одни значения cookie могут храниться только в течение одной сессии, они удаляются после закрытия броузера. Другие, установленные на некоторый период времени, записываются в файл. Обычно этот файл называется "cookies.txt" и лежит в рабочей директории установленного на компьютер браузера. У меня, к примеру, в этом файле содержится следующее:

    # Netscape HTTP Cookie File
    # http://www.netscape.com/newsref/std/cookie_spec.html
    # This is a generated file! Do not edit.
    www.webclub.ru FALSE /ourweb FALSE 946683907 1 1
    .bizlink.ru TRUE / FALSE 915148488 u_irads_watch 627633
    .doubleclick.net TRUE / FALSE 1920499140 id 332666ae
    .yahoo.com TRUE / FALSE 915144943 Y v=1&n=6jm0u5lgubh1k&l=0b8a0d3h/o&p=m29vvru7130a
    .yahoo.com TRUE / FALSE 915144943 T z=3587c277
    mail.yahoo.com TRUE / FALSE 943919791 YM.Login
    id%3d%241%24rm%24L6MDTCsrCNnk3syLZl2zo.%26sid%3dszxPh4SazGg/
    %250a%26ts%3dX%2588%25c3%2506%25d3%25e5I-%255d%253f%2597%25ddu
    .preferences.com TRUE / FALSE 1182140165 PreferencesID 3AGN9WD1D80gQfjvjAxRuq
    .geocities.com TRUE / FALSE 900743217 iTag gY6bZzWItDQAAWll3T8ASk1vbiwgMTMg
    search.netscape.com FALSE / FALSE 942189477 NGUserID cfc84d2a-522-898178454-1
    www.webclub.ru FALSE FALSE 913543999 visited yes

    Как видно, у меня оставили cookie Российский клуб вебмастеров, поисковая система AltaVista, бесплатный почтовый сервер Yahoo, Netscape Communications, рекламные сети DoubleClick и отечественная InterReklama. В настоящее время большинство браузеров поддерживает механизм cookies. Я точно знаю, что cookie можно использовать во всех версиях Netscape Navigator, Microsoft Internet Explorer и NCSA Mosaic.

    Что можно делать с помощью cookie?

    Сами по себе cookies не могут делать ничего, это только лишь некоторая текстовая информация. Однако сервер может считывать содержащуюся в cookies информацию и на основании ее анализа совершать те или иные действия. Например, в случае авторизованного доступа к чему либо через WWW в cookies сохраняется login и password в течение сессии, что позволяет пользователю не вводить их снова при запросах каждого документа, защищенного паролем.

    На использовании cookies также часто строят функции оформления заказов в онлайновых магазинах, в частности, в самом крупном виртуальном книжном магазине Amazon Books реализована своеобразная виртуальная корзина покупателя, как в обычном реальном супермаркете, в которую сервер записывает информацию обо всех заказанных книгах. Пользователь просто помечает интересующие его книги, а затем оформляет покупку сразу всех отмеченных книг.

    Еще одна распространенная область использования cookies - при настройке индивидуального профиля каждого зарегистрированного пользователя.

    И, наконец, самая последняя область - использование механизма cookie в рекламном бизнесе на Интернет. Еще год назад реклама в Интернет за деньги была довольно экзотической услугой, а сейчас этот бизнес уже устоялся и стремительно развивается. Однако рекламодатели начинают предъявлять более жесткие условия к оценке эффективности своих расходов. Cookie используются для таргетинга рекламы (определения целевой аудитории, например, по географическому положению пользователей), отслеживания интересов пользователей, учета количества показов и проходов сквозь баннеры.

    Работа с cookie

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

    Формат и синтаксис cookie

    Предлагаемое мной в этой статье описание формата и синтаксиса cookie является вольным пересказом изначальной спецификации Netscape Communications "Persistent Client State HTTP Cookies". В настоящий момент идет разработка более строгой спецификации для cookie. Итак, cookie является частью HTTP заголовка. Полное описание поля Set-Cookie HTTP заголовка:

    Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure

    Минимальное описание поля Set-Cookie HTTP заголовка:

    Set-Cookie: NAME=VALUE;

    NAME=VALUE - строка символов, исключая перевод строки, запятые и пробелы. NAME-имя cookie, VALUE - значение. Не допускается использование двоеточия, запятой и пробела.

    expires=DATE - время хранения cookie, т.е. вместо DATE должна стоять дата в формате "expires=Monday, DD-Mon-YYYY HH:MM:SS GMT", после которой истекает время хранения cookie. Если этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия броузера.

    domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например, "domain=cit-forum.com". В этом случае значение cookie будет действительно и для домена cit-forum.com, и для www.cit-forum.com. Но не радуйтесь, указания двух последних периодов доменных имен хватает только для доменов иерархии "COM", "EDU", "NET", "ORG", "GOV", "MIL" и "INT". Для обсуждаемых сейчас новых семи доменов первого уровня ("FIRM", "SHOP", "WEB", "ARTS", "REC", "INFO", "NOM"), вероятно, это условие сохранится. Для доменов иерархии "RU", например, придется указывать три периода.

    Если этот атрибут опущен, то по умолчанию используется доменное имя сервера, на котором было задано значение cookie.

    path=PATH - этот атрибут устанавливает подмножество документов, для которых действительно значение cookie. Например, указание "path=/win" приведет к тому, что значение cookie будет действительно для множества документов в директории /win/, в директории /wings/ и файлов в текущей директории с именами типа wind.html и windows.shtml. Для того, чтобы cookie отсылались при каждом запросе к серверу, необходимо указать корневой каталог сервера, например, "path=/".

    Если этот атрибут не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.

    secure - если стоит этот маркер, то информация cookie пересылается только через HTTPS (HTTP с использованием SSL - Secure Socket Level), в защищенном режиме. Если этот маркер не указан, то информация пересылается обычным способом.

    Синтаксис HTTP заголовка для поля Cookie

    Когда запрашивается документ с HTTP сервера, браузер проверяет свои cookie на предмет соответствия домену сервера и прочей информации. В случае, если найдены удовлетворяющие всем условиям значения cookie, броузер посылает их в серверу в виде пары имя/значение:

    Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ...

    Дополнительные сведения

    Одновременно можно задавать несколько значений cookie.

    В случае, если cookie принимает новое значение при имеющемся уже в браузере cookie с совпадающими параметрами NAME, domain и path, то старое значение заменяется новым. В остальных случаях новые значения cookie добавляются к старым.

    Использование expires не гарантирует сохранность cookie в течение заданного периода времени, поскольку клиент (браузер) может удалить запись из-за нехватки выделенного места или каких-либо других причин.

    Клиент (браузер) имеет следующие ограничения для cookies:


      всего может храниться до 300 значений cookies

      каждый cookie не может превышать 4Кбайт

      с одного сервера или домена может храниться до 20 значений cookie

    Если ограничение 300 или 20 превышается, то удаляется первая по времени запись. При превышении лимита объема в 4Кбайт корректность значения cookie страдает - отрезается кусок записи (с начала этой записи) равный превышению объема.

    В случае кэширования документов, например, proxy-сервером, поле Set-cookie HTTP заголовка никогда не кэшируется.

    Если proxy-сервер принимает ответ, содержащий поле Set-cookie в заголовке, предполагается, что поле доходит до клиента вне зависимости от кода возврата 304 (Not Modified) или 200 (OK). Соответственно, если клиентский запрос содержит в заголовке Cookie, то он должен дойти до сервера, даже если жестко установлен параметр If-modified-since.

    Ниже приведено несколько примеров, иллюстрирующих использование cookies

    Пример 1 . Управление подмножеством документов, для которых действительны значения cookie, и их сроком годности

    Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT
    Когда браузер запрашивает URL с путем "/" на этом сервере, он посылает серверу:
    Cookie: CUSTOMER=WILE_E_COYOTE
    Браузер запрашивает документ и принимает от сервера в ответ:
    Когда браузер запрашивает URL с путем "/" на этом сервере, он посылает серверу уже два значения cookie:
    Сервер установил еще одно значение cookie, на этот раз с другой областью действия:
    Set-Cookie: SHIPPING=FEDEX; path=/foo
    Теперь браузер, запрашивая URL с путем "/" на этом сервере, посылает лишь два значения cookie:
    Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001
    и лишь при запросе браузером документов с путем "/foo" на этом сервере посылаются все три значения cookie:
    Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001; SHIPPING=FEDEX
    Комментарий: после закрытия браузера в файле "cookies.txt" останется только одно значение cookie:
    CUSTOMER=WILE_E_COYOTE
    поскольку только для него установлен срок годности - 9 ноября 1999 года. Все остальные значения не будут сохранены.

    Пример 2 . Значения cookie с одинаковыми именами, но разными параметрами
    Браузер запрашивает документ и принимает ответ от сервера:

    Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/
    Когда браузер запрашивает URL с путем "/" на этом сервере, он посылает значение:
    Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001
    Во второй раз, запрашивая документ, браузер принимает от сервера значение cookie с другой областью действия:
    Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammo
    Когда браузер запрашивает URL с путем "/ammo" на этом сервере, он посылает значение:
    Cookie: PART_NUMBER=RIDING_ROCKET_0023; PART_NUMBER=ROCKET_LAUNCHER_0001

    Комментарий : здесь мы имеем две пары имя/значение с одинаковым именем "PART_NUMBER". При закрытии браузера ни одно из этих значений не сохранится, поскольку не задан параметр expires.

    Способы задания значений cookie

    Способ задания значений cookie зависит того, как эти значения будут использоваться и какие имеются серверные ресурсы. Можно манипулировать временем жизни выставленных cookie и устанавливать подмножества URL (Universal Resource Locator), в которых заданные значения действительны. Есть несколько способов задания, наиболее часто используются три - через META-таги языка HTML, JavaScript и CGI-скрипты. Любым способом можно задавать как одно, так и несколько значений сразу. Сразу хочу предупредить - не забывайте об ограничениях по объему и количеству значений cookie, а также параметре domain, так как помимо основного доменного имени узла часто бывает несколько алиасов (alias).


    Задание cookie с помощью META-тагов

    Простейший способ выставить cookie - использовать соответствующий META-таг в контейнере...любого статического HTML документа. В общем случае это выглядит следующим образом:

    Такой способ задания cookie, на мой взгляд, наиболее интересен для создателей маленьких домашних страничек, когда нет возможности писать свои собственные CGI-скрипты. А если есть поддержка SSI (Server Side Include) или PHP/Fi, то можно делать интерактивные страницы вообще без использования внешних CGI-скриптов. При наличии SSI на узле создание интерактивности с использованием механизма cookie становится просто удовольствием.

    С помощью cookie задается на любой статичной странице, директивой можно потом считать любые переменные окружения, в том числе и ранее заданные значения cookie (переменная HTTP_COOKIE), а с помощью конструкций, и задавать различные варианты внешнего вида страниц. Так же просто можно проделывать подобные вещи, используя PHP/Fi.

    Если же ни SSI, ни PHP/Fi недоступен, то можно задавать значение cookie, используя JavaScript.

    Задание cookie с помощью JavaScript

    Можно задавать значение cookie, используя язык JavaScript. Единственный недостаток этого способа заключается в том, что не все браузеры его поддерживают.

    Пример 3 . Функция установки значения cookie

    // name - имя cookie
    // value - значение cookie
    // - дата окончания действия cookie (по умолчанию - до конца сессии)
    // - путь, для которого cookie действительно (по умолчанию - документ, в котором значение было установлено)
    // - домен, для которого cookie действительно (по умолчанию - домен, в котором значение было установлено)
    // - логическое значение, показывающее требуется ли защищенная передача значения cookie

    function setCookie(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +

    ((secure) ? "; secure" : "")
    if (!caution || (name + "=" + escape(value)).length $cookie_value) { print "$cookie_name = $cookie_value
    "; }

      Изменение . Если cookie принимает новое значение при имеющемся уже в браузере cookie с совпадающими параметрами name, domain и path, то старое значение заменяется новым. В остальных случаях новые значения cookie добавляются к старым.

      Удаление . Нужно указать только имя куки, например SetCookie("Name"). Это приведет к удалению установленной куки с именем "Name" - это официальная рекомендация по удалению куки.

      Работающий пример удаления и установки куки при помощи PHP :

    Непонятные Cookies: _utma, _utmb, _utmc, and _utmz

    Иногда, при проверке установленных Cookies можно увидеть переменные с непонятными названиями: _utma, _utmb, _utmc. Эти куки устанавливает Google Analytics. Краткое знакомство с переменными Cookies от Google Analytics

      Utma – выдается при первом посещении сайта.

      Utmb – переменная отслеживает время посещения сайта. При каждом заходе на страницу отмечает “переход”. Время жизни по умолчанию 30 минут.

      Utmc – отслеживает закрытие браузера пользователем. Если при повторном заходе кука отсутствует, засчитывается новое посещение, независимо от _utmb

      Utmv – переменная используется для установки “собственной” пользовательской переменной

      Utmx – переменная нужна для Website Optimizer. Время жизни у куки _utmx – 2 года.

    Более подробную информацию о переменных можно узнать в документации Google Analytics.

    Cookies - верная технология, позволяющая веб-сайту "запомнить" пользователя,
    сохранить его настройки и не спрашивать каждый раз его логин и пароль. Можно
    подумать, что если удалить кукисы в браузере, то сайт тебя не узнает. Но эта
    уверенность обманчива.

    Можно сколько угодно заморачиваться о своей анонимности, использовать прокси
    и VPN, подделывать заголовки HTTP-запросов, выдающие используемую систему,
    версию браузера, часовой пояс и море другой инфы, но у веб-сайта все равно
    останутся способы распознать факт того, что ты на нем уже бывал. Во многих
    случаях это не особо критично, но только не в ситуации, когда на каком-то
    сервисе необходимо представиться другим пользователем или банально сохранить
    анонимность. Легко представить, как среагирует антифрод-система некой условной
    финансовой организации, если определит, что с одного компьютера были выполнены
    авторизации под аккаунтами совершенно разных людей. Да и разве приятно
    осознавать, что кто-то в Сети может отслеживать твои перемещения? Едва ли. Но
    обо всем по порядку.

    Как работают куки?

    Чтобы идентифицировать пользователя, испокон веков использовались кукисы.
    Cookies (от англ. "печенье") - это небольшая порция текстовой информации,
    которую сервер передает браузеру. Когда пользователь обращается к серверу
    (набирает его адрес в строке браузера), сервер может считывать информацию,
    содержащуюся в cookies, и на основании ее анализа совершать какие-либо действия.
    Например, в случае авторизованного доступа к чему-либо через веб в cookies
    сохраняются логин и пароль в течение сессии, что позволяет пользователю не
    вводить их снова при запросах каждого документа, защищенного паролем. Таким
    образом, веб-сайт может "запомнить" пользователя. Технически это выглядит
    следующим образом. Запрашивая страницу, браузер отправляет веб-серверу короткий
    текст с HTTP-запросом.

    Например, для доступа к странице www.example.org/index.html браузер
    отправляет на сервер www.example.org следующий запрос:

    GET /index.html HTTP/1.1
    Host: www.example.org

    Сервер отвечает, отправляя запрашиваемую страницу вместе с текстом,
    содержащим HTTP-ответ. Там может содержаться указание браузеру сохранить куки:

    HTTP/1.1 200 OK
    Content-type: text/html
    Set-Cookie: name=value

    Если есть строка Set-cookie, браузер запоминает строку name=value (имя =
    значение) и отправляет ее обратно серверу с каждым последующим запросом:

    GET /spec.html HTTP/1.1
    Host: www.example.org
    Cookie: name=value
    Accept: */*

    Все очень просто. Если сервер получил от клиента куки и они есть у него в
    базе, он однозначно может их обработать. Таким образом, если это были кукисы с
    некоторой информацией об авторизации, у пользователя в момент посещения не будет
    спрашиваться логин и пароль. По стандарту куки имеют определенный срок жизни
    (хоть он и может быть очень большим), после которого умирают. А любые
    сохраненные кукисы пользователь без труда может удалить, воспользовавшись
    соответствующей опцией, которая есть в любом браузере. Этот факт сильно
    расстраивает владельцев многих ресурсов, которые не желают терять связь с
    посетителем. Им важно отслеживать его, понимать, что "вот этот человек был у нас
    вчера, а еще позавчера и т.д.". Особенно это касается различных анализаторов
    трафика, систем для ведения статистики, баннерных сетей и т.п. Вот тут-то и
    начинается самое интересное, потому что разработчики используют всякие
    ухищрения, о которых многие пользователи даже не подозревают. В ход идут
    различные уловки.

    Flash-куки

    Все дело в том, что помимо обычных HTTP "плюшек", к которым все давно
    привыкли, сейчас активно используются альтернативные хранилища, где браузер
    может записать данные на стороне клиента. Первое, что нужно упомянуть - это
    хранилище любимого и ненавистного одновременно Flash (для тех пользователей, у
    которых он установлен). Данные хранятся в так называемых LSO (Local Shared
    Objects) - схожих с cookies по формату файлах, которые сохраняются локально на
    компьютере пользователя. Подход во многом аналогичен обычным "плюшкам" (в этом
    случае на компьютере пользователя точно так же сохраняется небольшое количество
    текстовых данных), но имеет некоторые преимущества:

    • Flash-кукисы являются общими для всех браузеров на компьютере (в отличие
      от классической cookie, которая привязана к браузеру). Настройки, информация
      о сессии, как и, скажем, некий идентификатор для отслеживания пользователя,
      не привязываются к какому-то конкретному браузеру, а становятся общими для
      всех.
    • Flash cookie позволяет сохранять намного больший объем данных (как
      правило, 100 Кб), что увеличивает количество настроек пользователя,
      доступных для сохранения.

    На практике LSO становится очень простой и доступной технологией для трекинга
    пользователя. Задумайся: если бы я предлагал тебе удалить все "плюшки" в
    системе, ты бы вспомнил о Flash-кукисах? Вероятно, нет. А теперь попробуй взять
    любой просмотрщик, например, бесплатный

    FlashCookiesView и посмотреть, сколько всего интересного записано в
    хранилищах Flash. Тут же вырисовывается и список сайтов, которые очень не хотят
    потерять твой след, даже если ты подчистишь кэш браузера (вместе с "плюшками").

    Кукисы везде с evercookie

    Но если об LSO слышали продвинутые пользователи и мало-мальски хорошие
    разработчики, то о существовании других техник хранения данных, подчас очень
    изощренных (но действенных), многие даже не подозревают. Взять хотя бы новые
    хранилища, которые появлялись в
    (Session Storage,
    Local Storage, Global Storage, Database Storage via SQLite), о которых ты можешь
    прочитать в статье " ". Этой проблемой всерьез заморочился польский специалист
    по безопасности Samy Kamkar. В результате на свет появилась специальная
    JavaScript-библиотека evercookie, которая специально создана для того, чтобы
    создавать максимально живучие кукисы в браузере. Кто-то может спросить: "Зачем
    это нужно?". Очень просто: для того, чтобы однозначно идентифицировать
    посетителя страницы, если он придет вновь. Такие сложно убиваемые кукисы часто
    называются Tracking cookies и даже определяются некоторыми антивирусами как
    угроза приватности. Evercookie может свести все попытки остаться анонимным к
    нулю.

    Секрет в том, что evercookie использует сразу все доступные для браузера
    хранилища: обычные HTTP-кукисы, LSO, контейнеры HTML5. Кроме того, в ход идет
    несколько хитрых приемов, которые с не меньшим успехом позволяют оставить на
    компьютере желанную метку. Среди них: генерация особых PNG-изображений,
    использование history браузера, хранение данных с помощью тега ETag, контейнер
    userData в Internet Explorer - оказывается, что вариантов-то очень много.

    В том, насколько это эффективно работает, можно убедиться на сайте
    разработчика -
    http://samy.pl/evercookie . Если нажать на кнопку "Click to create an
    evercookie", в браузере будут созданы кукисы со случайным числом. Попробуй
    удалить кукисы везде, где это только возможно. Бьюсь об заклад, сейчас ты
    задумался: "Где еще можно удалить кукисы, кроме как в настройках браузера?".
    Уверен, что все удалил? Перезагрузи страницу для верности, можешь даже заново
    открыть браузер. Вот теперь смело нажимай на кнопку "Click to rediscover cookies".
    WTF? Сайту это не помешало откуда-то взять данные - в полях страницы
    отобразилось число, которые было сохранено в кукисах. Но мы же их потерли? Как
    это получилось? Попробуем разобраться с некоторыми техниками.

    Кукисы в PNG

    Крайне интересным приемом, используемым в Evercookie, является подход
    хранения данных в кэшированных PNG-изображениях. Когда evercookie устанавливает
    куки, он обращается к скрипту evercookie_png.php со специальной HTTP "плюшкой",
    отличной от той, которая используется для хранения стандартной информации о
    сессии. Эти специальные кукисы считываются PHP-сценарием, создающим
    PNG-изображение, в котором все значения RGB (цветов) выставляются в соответствии
    с информацией о сессии. В конечном итоге PNG-файл отправляется браузеру клиента
    с пометкой: "файл необходимо кэшировать 20 лет".

    Получив эти данные, evercookie удаляет созданные ранее специальные
    HTTP-кукисы, затем выполняет тот же самый запрос к тому же PHP-сценарию, но не
    предоставляя информации о пользователе. Тот видит, что интересующих его данных
    нет, и сгенерировать PNG он не может. Вместо этого браузеру возвращается
    поддельный HTTP-ответ "304 Not Modified", что заставляет его вытащить файл из
    локального кэша. Изображение из кэша вставляется на страницу с помощью тега
    HTML5 Canvas. Как только это происходит, evercookie считывает каждый пиксель
    содержимого Canvas, извлекая RGB-значения и, таким образом, восстанавливая
    данные изначальных кукисов, которые были сохранены в изображении. Вуаля, все
    работает.

    Хинт с Web History

    Другой прием напрямую использует историю браузера. Как только браузер
    устанавливает плюшку, evercookie с помощью алгоритма Base64 кодирует данные,
    которые необходимо сохранить. Предположим, что этими данными является строка,
    полученная "bcde" после преобразований в Base64. Библиотека последовательно
    обращается в фоновом режиме к следующим URL:

    google.com/evercookie/cache/b
    google.com/evercookie/cache/bc
    google.com/evercookie/cache/bcd
    google.com/evercookie/cache/bcde
    google.com/evercookie/cache/bcde-

    Таким образом, эти URL сохраняются в history. Далее в ход идет специальный
    прием - CSS History Knocker, который с помощью JS-скрипта и CSS позволяет
    проверить, посещал ли пользователь указанный ресурс или нет (подробнее тут -
    samy.pl/csshack). Для
    проверки плюшек evercookie пробегается по всем возможным символам Base64 на
    google.com/evercookie/cache, начиная с символа "a" и двигаясь далее, но только
    на один символ. Как только скрипт видит URL-адрес, к которому было обращение, он
    начинает перебор следующего символа. Получается своеобразный брутфорс. На деле
    этот подбор осуществляется чрезвычайно быстро, потому что никакие запросы к
    серверу не выполняются. Поиск в history осуществляется локально в максимально
    короткий срок. Библиотека знает, что достигла конца строки, когда URL будет
    заканчиваться символом "-". Декодируем Base64 и получаем наши данные. Как
    назвать разработчиков браузеров, которые это позволяют?

    Попробуй удали

    А что будет, если юзер потрет свои кукисы? Важная фишка самой библиотеки
    evercookie в том, что пользователю придется основательно постараться, чтобы
    удалить кукисы, оставленные в разных местах - сейчас их 10. Если хотя бы в одном
    месте останутся данные куки, то они автоматически восстановятся и во всех других
    местах. Например, если пользователь не только удалит свои стандартные кукисы, но
    и очистит данные LSO, подчистит HTML5-хранилища, что уже маловероятно, все равно
    останутся куки, созданные с помощью кэшированного PNG и web history. При
    следующем же посещении сайта с evercookie библиотека не только сможет найти
    запрятанную плюшку, но и восстановит их во всех остальных местах, которые
    поддерживает браузер клиента. Интересный момент связан с передачей
    "плюшек" между браузерами. Если пользователь получает кукисы в одном браузере,
    то есть большая вероятность, что они воспроизведутся и в других. Единственное
    необходимое для этого условие - сохранение данных в Local Shared Object куке.

    Как использовать?

    Библиотека Evercookie полностью открытая, поэтому ты можешь свободно
    пользоваться ей, подгонять под свои нужды. К серверу не предъявляется никаких
    серьезных требований. Все что нужно - это доступ к JS-сценарию, в котором
    содержится код evercookie. Чтобы использовать Flash-кукисы (Local Shared Object),
    в папке со скриптом должен быть файл evercookie.swf, а для работы техник,
    основанных на PNG-кэшировании и использовании хранилища ETag, необходим доступ к
    PHP-сценариям evercookie_png.php и evercookie_etag.php. Использовать evercookie
    можно на любой страничке сайта, подключив следующий скрипт:





    var ec = new evercookie();
    // устанавливаем cookie "id" со значением "12345"
    // синтаксис: ec.set(key, value)
    ec.set("id", "12345");
    // восстанавливаем кукису с именем "id"
    ec.get("id", function(value)
    {
    alert("Cookie value is " + value)
    });

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

    function getCookie(best_candidate, all_candidates)
    {
    alert("The retrieved cookie is: " + best_candidate + "\n" + "You
    can see what each storage mechanism returned " + "by looping through the all
    candidates object.");

    For (var item in all_candidates) document.write("Storage
    mechanism " + item + " returned: " + all_candidates + "
    ");
    }

    ec.get("id", getCookie);

    Библиотека evercookie доступна каждому. Это немного пугает, особенно если
    совершенно не представляешь, что можно против нее предпринять.

    Как защититься?

    Проблем с тем, чтобы подчистить куки в браузере и Flash"е, нет. Но попробуй
    удали данные везде, где наследила evercookie! Ведь если оставишь куки в одном
    месте - скрипт автоматически восстановит значение и во всех остальных
    хранилищах. По сути, эта библиотека является хорошей проверкой режима
    приватности, который сейчас есть практически у всех браузеров. И вот что я тебе
    скажу: из Google Chrome, Opera, Internet Explorer и Safari только последний в
    режиме "Private Browsing" полностью блокировал все методы, используемые
    evercookie. То есть после закрытия и открытия браузера скрипт не смог
    восстановить оставленное им значение. Есть повод задуматься. Тем более что в
    ближайшее время разработчик evercookie обещал добавить в библиотеку еще
    несколько техник хранения данных, в том числе с помощью технологии Isolated
    Storage в Silverlight, а также Java-апплета.