Cookies

HTTP не сохраняет свое состояние, поэтому Web-серверу не нужно хранить какую-либо информацию о прошлых или будущих запросах. Однако на стороне сервера может иметься существенная причина для сохранения информации о состоянии между запросами в ходе сеанса или даже между сеанса ми. Например, может оказаться необходимым предоставлять доступ к ряду страниц на сервере только определенной группе пользователей. Если ввод идентификационной информации необходим при каждом обращении пользователя к любой из этих страниц, возникает дополнительная нагрузка как на пользователя (ему необходимо вводить эту информацию), так и на сервер (для обработки этой информации). Дополнительные транзакции также снижают пропускную способность сети. Сохрапепие определенной информации между запросами сокращает непроизводительные затраты для пользователя, сети и сервера. Браузер играет важную роль в предоставлении необходимой информации о состоянии вместе с пользовательским запросом.

являются одним из средств сохранения состояния HTTP [MF00J. Cookie [Netd, KM00] — это информация о состоянии, которая передается Web-cepвером браузеру и хранится на Компьютере пользователя в интересах сервера. Механизм работы с информацией о состоянии HTTP дает возможность клиентам и серверам сохранять информацию за пределами запроса и ответа на пего. впервые были применены Netscape в 1994 г. [NetdJ. Затем организацией Internet Engineering Task Force (IETF) был иачат процесс стандартизации. Механизм работы с состоянием HTTP, формализующий использование cookies, подробно описан в документе RFC 2965 [KM00J, выпущенном в октябре 2000 г. и представляющем собой предложение по стандарту (Proposed Standard) IETF. RFC 2965 отражает опыт различных реализаций.

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

Причины использования cookies

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

Многие Web-сайты (например, The New York Times, http://www.nytimes.com) требуют, чтобы cookies использовались браузером при загрузке страниц. Сайты могут требовать, чтобы пользователи идентифицировали себя именами и паролями. Если это необходимо делать при каждой загрузке страниц с этого сайта, пользователь вряд ли захочет работать с таким сайтом. Вместо этого необходимая идентификационная информация может передаваться автоматически через cookie.

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

Без cookies Web-серверу пришлось бы сохранять состояние всех своих пользователей (их может быть тысячи) на своем компьютере в течение длительного периода времени. Содержимое магазинной тележки или перечень приобретенных в последнее время товаров являются примерами информации о состоянии. В других случаях может сохраняться более подробная информация, например, все купленные пользователем товары или страницы, которые пользователь посетил в ходе последнего сеанса. Реалыюе состояние не обязательно сохраняется в cookies полностью; cookies часто используются в качестве индекса для базы данных, в которой Web-сервером сохраняется информация о состоянии пользователя. Сохранение информации о пользователе дает возможность приложению совместно использовать ее с другими приложениями, в том числе с другими серверами. Подобное совместное использование информации без ведома пользователя ведет к угрозе конфиденциальности пользователя.

Использование cookies в браузере

На рис. 2.4 представлен клиент, отправляющий запрос исходному серверу А (этап 1). Исходный сервер в ответ включает заголовок (Set-Cookie) со значением cookie (XYZ) (этап 2). Во все последующие запросы к исходному серверу А клиент включает cookie (этап 3, передача Cookie с запросом в заголовке).

Заметим, что клиент не интерпретирует строку cookie (XYZ) при ее сохранении и включении в последующие запросы. Сервер свободен в построении строки, предназначенной клиенту, сформировавшему запрос, и в изменении механизма построения строки cookie. На рисунке также показано, что обмен cookies фактически осуществляется без ведома пользователя, если только пользователь не потребовал уведомлять его каждый раз при передаче cookie. Такое уведомление мешает работе пользователя, поэтому лишь малая часть пользователей, осведомленных об этой возможности, применяет ее на практике.

первоначально хранятся в оперативной памяти Компьютера пользователя и записываются на долговременное устройство храпеиия (файлы на диске) при выходе из браузера. В соответствии с указаниями но реализации в [KMOOJ агенты пользователя могут хранить часто используемые cookies столько, сколько нужно, однако существует ряд ограничений. Cookie может иметь размер до 4 Кбайгов. Браузеры дают возможность сохранять максимум 20 cookies на сервер (или домеи) и не более 300 cookies, чтобы избежать перегрузки.

Рис. 2.4. Обмен cookies между клиентом и сервером

Контроль пользователя над cookies

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

•          Решать, принимать ли какие-либо cookies вообще. Подобное решение может сделать для пользователя невозможным загрузку страниц с некоторых сайтов.

•          Устанавливать ограничения на размер и количество принимаемых cookies. Тем самым пользователь управляет пространством, которое будет выделепо для cookies на его компьютере, и уменьшает вероятность размещения произвольно больших cookies.

•          Решать, принимать ли cookies от всех сайтов, или только от определенных сайтов/доменов: Это дает возможность пользователю принимать cookies с нужных сайтов и отклонять cookies с других сайтов.

•          Ограничить время жизни cookies только данным сеансом. Более детальное управление на уровне сеанса дает возможность пользователю разрешать прием cookies только для выполнения онределенной задачи. В конце сеанса осуществляется возврат к режиму по умолчапию, в соответствии с которым cookies для последующих сеансов не принимаются.

•          Потребовать, чтобы cookies исходили от того же сервера, с которого была получена текущая страница. Тем самым гарантируется, что пользователь будет знать, откуда поступили cookies, а другим сайтам, с которыми браузер мог автоматически связаться, будет запрещено посылать cookies. Например, когда браузер загружает контейнерный документ, встроенные изображения могут извлекаться автоматически. Встроенные изображения могут размещаться на сервере, отличном от того, на котором находится коитейнерпый документ.

Проблемы нарушения конфиденциальности, связанные с cookies

Пожалуй, ни одна другая технология не вызывала столько разногласий, сколько cookies. широко используются, но в то же время считается, что они могут привести к нарушению коифиденциалыюсти пользователя. Прежде всего, если применение cookies разрешено браузером по умолчанию, многие пользователи могут даже не подозревать, что они используют cookies. передаются откры- тъш текстом — другими словами, в незашифрованном виде. «Подслушивающая» программа, способная перехватывать сетевой трафик, может узпать содержимое cookies. Создается возможность модификации информации cookies но мере прохождения пакетов по сети. Таким образом, конфиденциальную информацию не следует передавать открытым текстом в составе cookies, если только между клиеигом и сервером не установлено защищенное коммуникационное взаимодействие. Помимо раскрытия личной информации пользователя, модификация значений cookies может также привести к изменениям на стороне сервера. Исходный сервер может использовать фрагменты cookies в качестве индексов для обращения к внутренней базе данных, и изменение cookies может привести к непредумышленной модификации базы данных без вмешательства со стороны пользователя. Многие пользователи не знают, кто имеет доступ к информации, извлеченной из cookies, и для чего используется эта ипформация. Например, информация из cookies может совместно использоваться компаниями, а относящиеся к пользователю дапиые (профили) могут быть незаконно использованы.

Проблема еще больше усугубляется, если информация из cookies передается серверу, отличному от исходного сервера, которому изначально был послап запрос. Сбор информации третьей стороной может привести к сложно обнаруживаемым и серьезным проблемам с пользовательской безопасностью. Например, агент пользователя U загружает страницу со встроенными изображениями с сервера S. Если встроенные изображения находятся на другом сервере, скажем E, браузер посылает запросы на сервер E, который может передать cookies. Теперь браузер будет иметь cookies и от S, и от E, хотя пользователь явио не обращался к серверу E. Механизм управления промежуточным состоянием HTTP требует, чтобы агент пользователя прекратил прием и отправку cookies в случае не поддающейся проверке транзакции, т.е. пользователю не предоставляется возможность просмотра URL, запрошенного от его имепи. Другими словами, запрос к URL делается без ведома пользователя, и cookies принимаются с сайта, который напрямую пользователем не посещался.

Рассмотрим пример. Пусть компания DoubleClick занимается сбором информации. Предположим, пользователь отправляет запрос на поиск информации в популярную поисковую систему и получает десять гиперссылок на страницы с искомой информацией. URL на эти страницы будут не в виде http://www.fool.com/ foo.html, http://www.foo2.com/bar.html и т.д. Вместо этого они могут иметь следующий вид:

http://ad.doubleclick.net/x26362d2/www.foo1.com/foo. html

Теперь, когда пользователь щелкает мышью на одной из гиперссылок, запрос посылается на сервер ad.doubleclick.net. Сервер ad.doubleclick.net записывает информацию из cookie пользователя. Информация из cookie связывает два компонента: пользователя, отправившего запрос, и посещенный им сайт www.fool.com. Далее запрос переадресовывается на сервер www.fool.com. Переадресация представляет собой вид HTTP-ответа, который инструктирует браузер отправить другой запрос с ипым URL. Переадресация запросов осуществляется прозрачно для большинства пользователей. Если различные серверы, которые пользуются услугами DoubleClick, сотрудничают между собой и совместно используют информацию из cookies одного и того же пользователя, они могут составить себе более подробный «портрет» пользователя.

Пользователь не может управлять использованием собранной из cookies информации. Было бы полезным при взаимодействии агента пользователя и сервера уведомлять пользователя и запрашивать у него разрешение перед использованием информации. Подобный подход называется моделью подтвержденного участия (opt- in); т.е. пользователи явным образом соглашаются предоставить информацию о себе. Альтернативой является схема уклонения от участия (opt-out), согласно которой поставщики содержания предоставляют пользователям возможность исключения их личных данных из собранной информации. Несмотря на то, что информация о пользователях не собирается автоматически, большинство пользователей не уклоняются от участия в сборе информации о себе. Причинами здесь являются инертность и отсутствие технической грамотности при слепом следовании инструкциям.

Основная проблема с cookies состоит в том, что мпогие пользователи просто не имеют понятия, какие действия выполняются от их имепи. Даже если им известно о наличии cookies, они могут не зпать, что Можно запретить работу с cookies или использовать их избирательно. Ряд сайтов предоставляет подробную информацию о проблемах, связанных с cookies, и возможном некорректном использовании cookies. Читатели могут получить дополнительную информацию из других источников [Jun, Muf, Coo].                                                                                                                                             ‘

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100