Зачем Cookie нужен?

Дело в том, что HTTP-протокол - одноразовый, если так можно выразиться. Т.е. каждый раз заходя на страничку, пользователь начинает сначала, что бы он не вводил, и какие изменения бы не делал. Cookie помогает создать иллюзию, что пользователя помнят на сайте. Пользователю не нужно вводить сотню раз одну и ту же информацию от странички к страничке, и даже от сессии к сессии, она хранится у него на диске. К удобству можно отнести еще и то, что эту информацию пользователь всегда сможет сменить у себя на диске "на лету". В Cookie также могут храниться другие разнообразные данные. Например, количество посещений какой-то страницы, время посещений. С помощью cookie не составляет труда сделать маленький органайзер или корзину в виртуальном магазине.

Cookie многие не любят из-за ее небезопасности. Многие аналитики говорят, что это не проблема, и ничего плохого с помощью данной технологии сделать нельзя. Я с этим глубоко не согласен, если кто-то может читать информацию из файла(ов) cookie, то это уже небезопасно. Приведу чисто теоретические примеры, которые, при желании, не трудно воплотить в реальность.
1. Допустим, пользователь зашел на почтовый сайт, заполнил форму с login'ом и паролем, которые записались в cookie, пускай даже через Secure Socket Level. Взломщик написал письмо пользователю в формате HTML с параметрами чтения cookie с паролями. Прочитав cookie, HTML-файл или запрашивает у пользователя разрешение отослать информацию взломщику, где пользователя можно обмануть ложной надписью а ля "Ошибки в сценариях Javascript!". Даже довольно опытный пользователь не задумываясь нажмет OK, после чего login и пароль отошлется взломщику. Или взломщик может добавить 0-ой фрейм, где будет временно содержаться информация из cookie, которая при ответе на письмо, будет вставляться в конец письма. Все это нетрудно сделать с помощью FORM и Javascript.
2. Пример с виртуальным магазином. Допустим, мы имеем гипотетический магазин shop.provider.com. Совершая покупки в данном магазине, пользователь хранит информацию в cookie. Параллельно или до захода в магазин, пользователь зашел на гипотетическую страницу взломщика hacker.provider.com, где изменялись настройки cookie виртуального магазина. Взломщик может изменить количество покупок, имя, адрес, и все то, что хранится в данном cookie. Я думаю, вам бы не понравилось, если к вашим покупкам прибавили пару мониторов или отвезли ваши покупки не тому пользователю. Сделать это довольно просто, если иметь страничку в домене магазина второго или третьего уровня.

Итак, для пользователя технология cookie представляет собой несколько файлов в папке %WINDOWS%\Cookies (по умолчанию в Internet Explorer), либо всего один файл cookie.txt (если это Netscape Navigator и другие броузеры). Сайты периодически добавляют информацию в cookie и ее же забирают. Естественно, в спецификациях Cookie предусмотрены некоторые элементы защиты.

- Всего Cookies может быть не больше 300. 
- Каждый Cookie не может быть больше 4kb. 
- С одного домена второго уровня (плюс подуровни) не может быть получено больше 20 Cookies. 
- Информация из Cookie одного домена второго уровня (плюс подуровни) не может быть прочитана другими доменами. 
- Если документ кэшируется, то информация о cookie не кэшируется. 
- Информация в\из Cookie может передавать с помощью протокола SSL.
- Если лимит исчерпывается, первые записи удаляются. Если Cookie становится больше 4kb, первые байты вырезаются.

Для того чтобы контролировать запись и чтение cookie можно использовать специальные утилиты, но эта функция есть почти во всех Firewall например Agnitum Outpost, так же в проге A4Proxy можно двумя щелчками мыши запретить все cookie.