Анонимность в Human Emulator Studio. Куки, кэш и не только.

Анонимность в Human Emulator Studio. Куки, кэш и не только.

Кэш браузера.

Что такое Кэш браузера (Browser cache)?

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

Анонимность и кэш.

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

В Human Emulator Studio для очистки кэша используется команда объекта browser clear_cache.

пример на php:


// чистим кэш 
$browser->clear_cache();

При этом этой же функцией чистятся и данные из local storage (локальные хранилища данных.)

Хранилище Web.

Хранилище Web (Web storage или ранее DOM Storage) это стандарт HTML, который предоставляет функционал для хранения данных на стороне клиента в течении сессии(Session Storage – сессионное хранилище), или после завершения сессии (Local Storage – локальное хранилище). Стандарт Web storage появился тогда, когда владельцем сайтов прекратило хватать традиционных cookies так как они имели существенные ограничения по размеру и проблемы с безопасностью.

DOM хранилище (DOM Storage) — это название для набора инструментов, относящихся к хранилищам, впервые представленных в спецификации Web Applications 1.0, и выделенных теперь в отдельную специкацию W3C Web Storage.

Соответственно, для вашей анонимности эти хранилища нужно также чистить. Если вам необходимо почистить только Local Storage для этого можно использовать функцию объекта браузер сlear_local_storage.

пример на php:


// очистить только локальные хранилища данных
$browser->clear_local_storage();

пример на php:


// очистить куки для всех сайтов, в том числе и сессионные куки
$browser->clear_cookies("", true);

IndexedDB.

Ещё одно хранилище пользовательских данных. С версии 7.0.42 чистится с помощью функции объекта браузер clear_cookies.

А также была добавлена отдельная функция в объект browser clear_indexed_db, только для отчистки этого хранилища.

пример на php:


// очистить только IndexedDB
$browser->clear_indexed_db();

Куки (HTTP cookies, Flash Cookies, Evercookies).

http cookies (web cookies) — это данные с сервера, которые в текстовом виде хранят на вашем компьютере различные настройки, аутентификации, сеансы, статистику, персональные предпочтения и т.д. Чистится с помощью функции объекта браузер clear_cookies.

clear_cookies(match_name,clear_session=false,clear_flash=true)

match_name – шаблон для поиска сайтов, чьи куки надо очистить (часть адреса), если задана пустая строка — очищаются все. К примеру ya.ru или https://ya.ru/ и т.д.
clear_session – очищать сессионные куки (true) или не очищать (false) при выполнение команды. Сессионные куки — отслеживания состояния сеанса доступа пользователя;
clear_flash – очищать ли (true) или не очищать (false) флэш куки.

Flash Cookies (LSO Cookies) — в отличие от обычных куков в том, что они общие для всех браузеров и с их помощью можно хранить больший объём информации. Чистятся эти куки также с помощью функции объекта браузер clear_cookies.

Помимо чистки с помощью функции clear_cookies для Flash Cookies есть возможность удалять их функцией объекта browser flash_cookies_delete, а также восстановить сохраненные флэш куки из заданной папки как текущие с помощью функции объекта browser flash_cookies_restore и сохранить текущие флэш куки в заданную папку с помощью функции объекта browser flash_cookies_save.

пример на php:


// Перейдем на Яндекс 
$browser->navigate("http://www.wordstat.yandex.ru");
 
// путь к папке для сохранения кук 
$path="C:\\FlashCookies1";
// Сохраним флэш куки 
// создадим папку
$folder->create($path);
// сохраним куки
$browser->flash_cookies_save($path);
 
sleep(1);
 
// Удалим флэш куки
echo($browser->flash_cookies_delete()."\n");
 
// Восстановим флэш куки из сохраненной папки
$browser->flash_cookies_restore($path);

пример на php чистим все куки:


// чистим все куки, в том числе сессионные и flash куки 
$browser->clear_cookies("",true);

Evercookie — самые устойчивые куки, куки хранятся практически во всех доступных хранилищах и если их не вычистить отовсюду они автоматически восстанавливается из оставшихся. Для их отчистки нужно закрыть все вкладки перейти в оставшейся на пустую страницу и выполнить чистку куков и кэша и желательно ещё перезапустить программу.

пример на php:


// закрываем все открытые вкладки браузера
$browser->close_all_tabs();
// в оставшейся переходим на пустую страницу
$browser->navigate("about:blank");
sleep(1);
// чистим куки
$browser->clear_cookies("",true);
sleep(1);
// чистим кэш
$browser->clear_cache();
sleep(1); 
// перезапускаем программу
$app->restart();

Сохранение и восстановление куков и кэша.

Для того что бы сохранить, а затем повторно использовать все куки и кэш можно использовать функции объекта browser
set_cookies_folder – задать папку для кукисов. Папки с кэшем будут создаваться внутри заданной папки с куками.

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

пример на php:


// получить порт на котором работает скрипт
$app_port=$app->get_port();

// пути к папкам с куками
$cookies_path1 = "C:\\XWeb Studio\\Human Emulator Studio\\$app_port\\cookies\\test_cookies_folder1";
$cookies_path2 = "C:\\XWeb Studio\\Human Emulator Studio\\$app_port\\cookies\\test_cookies_folder2";

// Зададим папку куков 
$browser->set_cookies_folder($cookies_path1);

// выполняем необходимые действия для получения куков и кэша
// навигация по сайту логин загрузка контента и т.д.

// меняем папки
// Зададим папку куков 
$browser->set_cookies_folder($cookies_path2);

// повторно выполняем необходимые действия для получения куков и кэша
// навигация по сайту логин загрузка контента и т.д.

// после этого задаём опять
// Зададим папку куков 
$browser->set_cookies_folder($cookies_path1);

// и снова заходим на нужные сайты и делаем там какие то действия и т.д.

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

Импорт кук.

Если у вас есть куки, которые нужно использовать в программе, то это можно сделать с помощью команды объекта browser import_cookies. Это функция используется для импорта куков из формата JSON. Команда на вход принимает два параметра url — адрес сайта для которого импортируются куки, cookies — куки в формате json.

Пример использования на php:

// прочитать куки из файла
$cookie = file_get_contents('cookie.txt');
// делаем импорт кук для заданного url
$browser->import_cookies($url,$cookie);
sleep(1);
// и далее переходим на сайт для которого используются куки

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

Обсудить команду или задать вопросы по импорту кук можно на нашем форуме в теме про импорт кук.

Удаление папок с куками и кэшем в момент старта программы.

В программе с версии 7.0.25 появились настройки для очистки куков и кэша при старте. Так как удалить полностью папки с куками и кэшем при работающей программе не возможно, были добавлены специальные настройки для того чтобы в момент запуска программы пока эти папки ещё не заняты процессами браузера полностью удалять их. Эти настройки находятся в настройках программы закладка «Основные» галочки «Очищать куки текущего порта при старте» и «Очищать кэш текущего порта при старте«.

Полная чистка всего и вся.

Полная чистка всего и вся может выполняться с помощью функции объекта app clear.

пример на php:


// закрыть все вкладки браузера
$browser->close_all_tabs();
// перейти в оставшейся вкладке на пустую страницу
$browser->navigate("about:blank");
sleep(1);
// чистим всё
$app->clear();

Для полной чистки всех куков и кэша, после их отчистки необходимо перезапустить программу с помощь функции объекта app restart . Эта функция позволяет перезагружать программу с запуском скрипта, а также задавать ряд настроек такие как порт, пути к папке с куками. К тому же при полном перезапуске программы чиститься ещё и память, а если у вас заданы настройки «Очищать куки текущего порта при старте» и «Очищать кэш текущего порта при старте«, то ещё полностью удаляются папки с куками и кэшем. Таким образом логика работы вашего скрипта должна учитывать все эти нюансы.

пример на php с использованием функций чистки куков и кэша:


// тут задаём настройки для сёрфинга
// выполняем серфинг
// а после
// закрываем все вкладки браузера
$browser->close_all_tabs();
// переходим в оставшейся вкладке на пустую страницу
$browser->navigate("about:blank");
sleep(1);
// Очистить куки
$browser->clear_cookies("",true);
sleep(1);
// Очистить кэш
$browser->clear_cache();
sleep(1); 
// перезапуск программы с запуском этого же скрипта на этом же порту
$app->restart($debug->get_cur_script_path(),$app->get_port(),$app->get_port());

пример на php с использованием функций объекта app clear:


// тут задаём настройки для сёрфинга
// выполняем серфинг
// а после
// закрываем все вкладки браузера
$browser->close_all_tabs();
// переходим в оставшейся вкладке на пустую страницу
$browser->navigate("about:blank");
sleep(1);
// чистим всё
$app->clear();
sleep(1); 

// перезапуск программы с запуском этого же скрипта на этом же порту
$app->restart($debug->get_cur_script_path(),$app->get_port(),$app->get_port());

обсудить на форуме

5/5 - (7 голосов)

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.