Анонимность в Human Emulator Studio. Управление информацией о браузере
В Human Emulator Studio есть возможность менять широкий набор настроек. Все настройки браузера и остальные команды для управления работой с браузером можно посмотреть в документации к объекту browser. В этой статье поговорим конкретно об изменении тех настроек, которые содержат информацию о браузере.
Размеры браузера.
Ширина и высота браузера задаются с помощью функций объекта browser set_width и set_height.
пример на php:
1 2 3 4 5 6 7 |
// изменить размеры окна браузера // случайным образом в диапозоне от 300 до 1200 // ширину $browser->set_width(rand(300,1200)); // высоту $browser->set_height(rand(300,1200)); |
Масштаб браузера.
Задать масштаб браузера можно с помощью функции объекта browser set_zoom.
пример на php:
1 2 |
// Зададим масштаб 400% $browser->set_zoom(400); |
Разрешение экрана и битность.
Разрешение экрана и битность задаются одной функцией объекта browser set_screen_resolution. Задает navigator : (width, height, pixelDepth) и их дубликаты (availWidth, availHeight, colorDepth).
пример на php:
1 2 |
// Зададим разрешение 1024x768 и битность 24 $browser->set_screen_resolution(1024,768, 24); |
Useragent строка.
Для установки Useragent строки или так называемого идентификатора браузера используется функция объекта browser set_user_agent. Вместе с идентификатором браузера необходимо заполнять и следующие параметры навигатора (window.navigator):
appVersion, appName, appCodeName, language(s), platform, product, productsub.
пример на php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
// user-agent для chrome // Mozilla/5.0 ([Platform]) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[ChromeVer] Safari/537.36 // данные для генерации случайной строки user-agent // версии хрома // содержимое файла выглядит следующим образом /* 78.0.3904.83 78.0.3904.84 78.0.3904.85 78.0.3904.86 78.0.3904.87 78.0.3904.88 78.0.3904.9 78.0.3904.90 */ // файл должен лежать в папке со скриптом // скачать его можно в теме на форуме $arr_chrome_versions = file('chrome_versions.txt'); // операционная система // 6.1 Windows 7 // 6.2 Windows 8 // 6.3 Windows 8.1 // 10.0 Windows 10 $arr_winOS = array("6.1","6.2","6.3","10.0"); // платформа $arr_pltf= array("Win32","Win64"); // получаем случайным образом версию из файла $num = mt_rand(1,count($arr_chrome_versions)-1); $version=trim($arr_chrome_versions[$num]); // ось $num = mt_rand(1,count($arr_winOS)-1); $winOS=$arr_winOS[$num]; // платформа $pltf =$arr_pltf[rand(0,1)]; // битность запускаемых приложений $pltf_app_bit =""; // navigator.cpuClass $cpuClass=""; if($pltf=="Win32") { $pltf_app_bit ="WOW64"; $cpuClass="x86"; } else { $pltf_app_bit ="Win64; x64"; $cpuClass="x64"; } // соберём случайную строку echo $user_agent_srting = "Mozilla/5.0 (Windows NT $winOS; $pltf_app_bit) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/$version Safari/537.36"; // задаём строку в браузер $browser->set_user_agent($user_agent_srting); // Зададим navigaror.platform и navigator.cpuClass $browser->set_platform($pltf,$cpuClass); // необходимо заполнять и доп. свойства навигатора: //appVersion, appName, appCodeName, language(s), platform, product, productsub, vendor, vendorSub // зададим следующие параметры appName appCodeName appVersion product productSub vendor vendorSub // vendor и vendorSub можно задавать с версии 7.0.42 $appMinorVersion = trim(str_replace("Mozilla/","",$user_agent_srting)); $browser->set_app_info("Netscape", "Mozilla", $appMinorVersion, "Gecko", "20030107","Google Inc.",""); // язык $languges = "ru-RU,ru,en-US,en"; $arr_lang=explode(",",$languges); // Задает одинаковыми параметры navigator language, browserLanguage, systemLanguage, userLanguage // первый из списка $browser->set_language($arr_lang[0]); // весь список задаём в accepts $browser->set_accept_language($languges); |
Информация о плагинах.
Подмена списка предустановленных в вашем браузере плагинов осуществляется с помощью функции объекта browser set_plugins_info.
Получение этой информации входит в так называемые отпечатки браузера(browser fingerprints). С помощью этой технологии владелец сайта может получить ваш уникальный профиль как пользователя и потом определить все ваши последующие посещения и действия. Подробнее об отпечатках браузера мы поговорим в отдельной статье.
Список плагинов задаётся в виде строки:
«[{ name : ‘название плагина 1’, description : ‘описание плагина 1’, filename : ‘файл плагина 1’, version : ‘версия плагина 1’ },
{ name : ‘название плагина 2’, description : ‘описание плагина 2’, filename : ‘файл плагина 2’, version : ‘версия плагина 2’ },
{ name : ‘название плагина 3’, description : ‘описание плагина 3’, filename : ‘файл плагина 3’, version : ‘версия плагина 3’ },
{ и т.д.}]»
С версии 7.0.41 можно задать и список Mime для плагинов. Задаётся в виде строки:
«[{type: ‘тип’, suffixes: ‘суффикс’, description: ‘описание’, __pluginName: ‘ название плагина 1′ },
{type: ‘тип’, suffixes: ‘суффикс’, description: ‘описание’, __pluginName: ‘ название плагина 2′ }
{type: ‘тип’, suffixes: ‘суффикс’, description: ‘описание’, __pluginName: ‘ название плагина 3′ }
{type: ‘тип’, suffixes: ‘суффикс’, description: ‘описание’, __pluginName: ‘ название плагина 3′ } ]»
пример на php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
// добавим информацию о 3 плагинах /* Chromium PDF Plugin Portable Document Format Имя: Chromium PDF Plugin Описание: Portable Document Format Версия: Расположение: internal-pdf-viewer Тип: PPAPI (вне процесса) Типы MIME: Тип MIME Описание Расширения файлов application/x-google-chrome-pdf Portable Document Format ------------------------------------ Chromium PDF Viewer Имя: Chromium PDF Viewer Версия: Расположение: chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/ Тип: Модуль браузера Типы MIME: Тип MIME Описание Расширения файлов application/pdf .pdf ------------------------------------ Adobe Flash Player - Версия: 31.0.0.153 Shockwave Flash 31.0 r0 Имя: Shockwave Flash Описание: Shockwave Flash 31.0 r0 System Версия: 31.0.0.153 Расположение: C:\Windows\SysWOW64\Macromed\Flash\pepflashplayer32_31_0_0_153.dll Тип: PPAPI (вне процесса) Типы MIME: Тип MIME Описание Расширения файлов application/x-shockwave-flash Shockwave Flash .swf application/futuresplash FutureSplash Player .spl */ // "1. Зададим navigaror.plugins : "; $plugins="[{ name: 'Chromium PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' }, { name: 'Chromium PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' }, { name: 'Adobe Flash Player', filename: 'pepflashplayer32_31_0_0_153.dll', description: 'Shockwave Flash 31.0 r0 System' , version : '31.0.0.153'}]"; $mimes_types="[{type: 'application/x-google-chrome-pdf', suffixes: 'pdf', description: 'Portable Document Format', enabledPlugin: Plugin, __pluginName: 'Chromium PDF Plugin' }, {type: 'application/pdf', suffixes: 'pdf', description: '', enabledPlugin: Plugin, __pluginName: 'Chromium PDF Viewer'}, {type: 'application/x-shockwave-flash',suffixes: 'swf',description: 'Shockwave Flash',__pluginName: 'Adobe Flash Player'}, {type: 'application/futuresplash',suffixes: 'spl',description: 'FutureSplash Player',__pluginName: 'Adobe Flash Player'}]"; // с версии 7.0.41 можно задавать для плагинов типы MIME $browser->set_plugins_info($plugins,$mimes_types); // 2 // "2. Перейдем на страницу для детектирвоания браузера : "; $browser->navigate("https://browserleaks.com/javascript"); $h3->set_focus_by_inner_text("Installed Plug-Ins", false); sleep(5); $btn->click_by_inner_text("iframe.contentWindow", false); sleep(5); |
Посмотреть информацию по реальным плагином можно установив их в браузер Chrome, а потом через Инструменты разработчика (F12) перейти в консоль и там ввести «navigator.plugins«. Появится информация по плагинам в следующем виде:
Информация об оборудовании
Для установки параметров navigator hardwareConcurrency – число процессоров (потоков), которые доступны браузеру и deviceMemory – количество гигабайт памяти, которые доступны браузеру используется функция объекта browser set_hardware_info
Также с версии 7.0.42 с помощью этой можно задавать и параметр devicePixelRatio. DevicePixelRatio возвращает отношение разрешения в физических пикселях к разрешению в пикселях CSS для текущего устройства отображения. Это значение также можно интерпретировать как отношение размеров пикселей: размер одного пикселя CSS к размеру одного физического пикселя. Проще говоря, это говорит браузеру, сколько фактических пикселей экрана должно использоваться для рисования одного пикселя CSS.
Параметр зависит от устройства: для обычных дисплеев равен 1, но могут быть и 2 и 1.5
пример на php:
1 2 |
// Зададим количество процессоров 2 и 4 гб памяти и отношение разрешения 1 $browser->set_hardware_info(2,4,1); |
Do Not Track (DNT).
Это предлагаемое поле заголовка HTTP, предназначенное для того, чтобы пользователи интернета могли отказаться от отслеживания веб—сайтами, которое включает в себя сбор данных об активности пользователя в нескольких различных контекстах, а также хранение, использование или совместное использование данных, полученных от этой активности вне контекста, в котором она произошла.
Для установки этого флага используется функция объекта browser set_do_not_track
пример на php:
1 2 |
// Укажем сайтам не отслеживать наши действия $browser->set_do_not_track(true); |
Сенсорный экран.
Задать данные о используемом сенсорном экране можно с помощью функции объекта browser set_touch_info. Функция изменяет параметры navigator.maxTouchPoints — максимальное количество одновременных сенсорных контактов и window.ontouchstart — включены ли сенсорные события.
пример на php:
1 2 3 |
// Зададим информацию о экранном сенсоре // 5 одновременных сенсорных контактов и включим передачу сенсорных событий $browser->set_touch_info(5,true); |
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.