Защита отпечатков WebGL: контроль идентичности GPU с BotBrowser
Как BotBrowser контролирует идентичность GPU WebGL и параметры через защиту отпечатков на основе профилей.
Риск для конфиденциальности
WebGL раскрывает подробную информацию о GPU, включая производителя, рендерер, поддерживаемые расширения и аппаратные ограничения. Эта информация формирует отличительный отпечаток для отслеживания между сайтами.
Как BotBrowser контролирует идентичность WebGL
BotBrowser управляет отпечатками WebGL на уровне движка браузера, обеспечивая согласованный и реалистичный аппаратный профиль.
Идентичность GPU на основе профилей
При загрузке профиля отпечатка параметры WebGL автоматически соответствуют целевому GPU:
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Явная конфигурация WebGL
Для точного контроля используйте явную конфигурацию WebGL:
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-webgl='{"vendor":"Google Inc.","renderer":"ANGLE (NVIDIA GeForce GTX 1660 SUPER)"}'
Кроссплатформенный контроль GPU
Запустите профиль с NVIDIA GPU на машине с AMD или Intel. BotBrowser обеспечивает отчет WebGL об идентичности GPU профиля.
Проверка
После запуска с профилем убедитесь в соответствии значений WebGL:
const { chromium } = require('playwright-core');
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: ['--bot-profile=/path/to/profile.enc'],
headless: true,
});
const page = await (await browser.newContext()).newPage();
const webgl = await page.evaluate(() => {
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
const ext = gl.getExtension('WEBGL_debug_renderer_info');
return {
vendor: gl.getParameter(ext.UNMASKED_VENDOR_WEBGL),
renderer: gl.getParameter(ext.UNMASKED_RENDERER_WEBGL),
};
});
console.log('WebGL:', webgl);
await browser.close();
Начало работы
- Скачайте BotBrowser с GitHub
- Загрузите профиль отпечатка с
--bot-profile - Используйте
--bot-config-webglдля явной конфигурации GPU - Проверьте идентичность WebGL скриптом выше