Анонимность в 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());
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.