
- •Что такое куки.
- •Назначение.
- •Понятие
- •История
- •Заблуждения
- •Работа куки Установка куки
- •Атрибуты куки
- •Условия истечения срока хранения
- •Аутентификация
- •Настройка браузера
- •Приватность и сторонние куки
- •Кража куки
- •Подмена куки
- •Межсайтовые куки
- •Нестабильность между клиентом и сервером
- •Срок действия куки
- •Url (строка запроса)
- •Скрытые поля формы
- •Http-аутентификация
- •Сохранение на клиентской стороне
Условия истечения срока хранения
Срок хранения куки истекает в следующих случаях:
В конце сессии (например, когда браузер закрывается), если куки не являются постоянными.
Дата истечения была указана и срок хранения вышел.
Браузер удалил куки по запросу пользователя.
Заметим, что сервер может узнать, когда истекают сроки хранения куки, только когда браузер отправляет на сервер эту информацию.
Аутентификация
Куки могут использоваться сервером для опознания ранее аутентифицированных пользователей. Это происходит следующим образом:
Пользователь вводит имя пользователя и пароль в текстовых полях страницы входа и отправляет их на сервер.
Сервер получает имя пользователя и пароль, проверяет их и, при их правильности, отправляет страницу успешного входа, прикрепив куки с неким идентификатором сессии. Эта куки может быть действительна только для текущей сессии браузера, но может быть настроена и на длительное хранение.
Каждый раз, когда пользователь запрашивает страницу с сервера, браузер автоматически отправляет куки с идентификатором сессии серверу. Сервер проверяет идентификатор по своей базе идентификаторов и, при наличии в базе такого идентификатора, «узнаёт» пользователя.
Этот метод широко используется на многих сайтах, например на Yahoo!, в Википедии и в Facebook.
Многие браузеры (в частности Opera, FireFox), путем редактирования свойств куки, могут управлять поведением веб-сайтов. Изменив срок истечения непостоянных (сессионных) куки можно, например, получить формально-неограниченную сессию после авторизации на каком-либо сайте. Возможность редактирования куки стандартными средствами отсутствует в Internet Explorer. Но, воспользовавшись иными механизмами, например, JavaScript, пользователь может изменить куки-файл. Более того, существует возможность заменить сессионные куки постоянными (с указанием срока годности).
Однако серверное программное обеспечение может отслеживать такие попытки. Для этого сервер выдаёт куки на определённый срок и записывает дату окончания куки у себя каждый раз, когда пользователь обращается к серверу. Если куки, присланный браузером, имеет дату годности отличную от той, что хранится на сервере, значит имеет место попытка подмены даты годности куки. Сервер может отреагировать, например, запросив у пользователя повторную авторизацию.
Настройка браузера
Большинство современных браузеров поддерживают куки. И, как правило, пользователь может выбрать, должны куки использоваться или нет. Наиболее распространены следующие настройки браузеров:
Полное отключение куки.
Удаление куки при закрытии браузера.
Различение сторонних куки с третьей стороны и соответствующее обращение с ними (например, ограничение или запрет для них).
Обработка куки на основе «белого» и/или «чёрного» списков, обновляемых пользователем или изготовителем браузера. Куки из «чёрного списка» блокируются.
Запрет куки от определённых доменов (разновидность «чёрного списка»).
Установка разумных сроков истечения куки.
Большинство браузеров, поддерживающих JavaScript, позволяют пользователю увидеть активные на данном сайте куки, набрав javascript:alert("Cookies: "+document.cookie) или javascript:prompt("Cookies:",document.cookie) в адресной строке браузера. Некоторые браузеры содержат менеджер куки, позволяющий пользователю выборочно просмотреть и удалить куки, хранящиеся в браузере.