Веб-браузеры собирают различную информацию при выполнении своих функций. Когда некоторая из этой информации собирается для идентификации пользователя веб-сайта, это называется браузерным отпечатком.
Браузерный отпечаток состоит из следующей информации о браузере: модель устройства, тип и версия браузера, операционная система (ОС), разрешение экрана, часовой пояс, идентификатор формата файла p0p, временная метка, строка User Agent (UA), языковые настройки, плагины, расширения.
Canvas fingerprinting - это одна из таких технологий браузерного отпечатка. Она основана на элементе Canvas в коде HTML5 (Hypertext Markup Language) Web.
Canvas fingerprinting использует API Canvas браузера для рисования невидимых изображений и извлечения устойчивых долгосрочных отпечатков без ведома пользователя.
Вот краткий обзор шагов, необходимых для создания отпечатка Canvas для веб-сайта:
Расстроены тем, что веб-скрейпинг снова и снова блокируется?
Бесплатный Nstbrowser обрабатывает ротацию IP-адресов и разблокировку веб-сайтов за вас.
Попробуйте бесплатно!
Есть ли у вас хорошие идеи или вопросы о веб-скрейпинге и Browserless?
Посмотрите чем делятся другие разработчики в Discord и Telegram!
Особенность | Canvas Fingerprinting | Browser Fingerprinting |
---|---|---|
Основа | Различия в рендеринге элемента canvas |
Множественные атрибуты устройства и браузера |
Используемые атрибуты | Характеристики рендеринга Canvas | User-Agent, разрешение экрана, плагины, шрифты, часовой пояс, язык, WebGL, аудиоконтекст и т.д. |
Сложность | Относительно простая | Более сложная |
Уникальность | Высокая | Очень высокая |
Устойчивость | Высокая | Очень высокая |
Проблемы конфиденциальности | От умеренных до высоких | Высокие |
Обнаружение и блокировка | Легче обнаружить и заблокировать | Труднее обнаружить, но можно смягчить подменой или ограничением атрибутов |
Методология:
canvas
: Canvas fingerprinting основывается на элементе canvas
HTML5 для рендеринга графики.Методология:
Методология:
canvas
: Использует элемент HTML5 canvas
для рендеринга графики.Методология:
Canvas Noise - это техника предотвращения обнаружения отпечатков путем добавления случайного шума в элементы HTML5 Canvas. Если два изображения отличаются, они будут иметь разные значения хеша.
Таким образом, путем введения случайного шума в изображение, обычно путем модификации данных изображения, отрендеренного Canvas, можно предотвратить создание устойчивых отпечатков, делая значение хеша изображения слегка различным каждый раз, что трудно заметить человеческому глазу, но сгенерированное значение хеша будет отличаться.
Вот простая реализация Canvas Noise:
<!DOCTYPE html>
<html>
<head>
<title>Canvas Noise Example</title>
</head>
<body>
<canvas id="canvas" width="200" height="50"></canvas>
<script>
// Получить элемент canvas и его 2D контекст рендеринга
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// Шаг 1: Нарисовать оригинальное изображение
// Установить базовую линию текста и шрифт
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.textBaseline = 'alphabetic';
// Нарисовать заполненный прямоугольник
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
// Нарисовать первый текст
ctx.fillStyle = '#069';
ctx.fillText('Hello, world!', 2, 15);
// Нарисовать второй текст с прозрачностью
ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
ctx.fillText('Hello, world!', 4, 17);
// Шаг 2: Добавить случайный шум к изображению
// Получить данные изображения с canvas
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;
// Пройтись по каждому пикселю и добавить случайный шум
for (var i = 0; i < data.length; i += 4) {
// Добавить шум к красному каналу
data[i] += Math.floor(Math.random() * 10) - 5; // Красный
// Добавить шум к зеленому каналу
data[i+1] += Math.floor(Math.random() * 10) - 5; // Зеленый
// Добавить шум к синему каналу
data[i+2] += Math.floor(Math.random() * 10) - 5; // Синий
}
// Поместить измененные данные изображения обратно на canvas
ctx.putImageData(imageData, 0, 0);
// Конвертировать canvas в URL данных и вывести его
var dataURL = canvas.toDataURL();
console.log(dataURL);
// Сгенерировать хеш SHA-256 из URL данных и вывести его
sha256(dataURL).then(hash => console.log(hash));
// Функция для генерации хеша SHA-256
function sha256(str) {
return crypto.subtle.digest('SHA-256', new TextEncoder
().encode(str)).then(buffer => {
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
});
}
</script>
</body>
</html>
Nstbrowser - замечательный браузер с поддержкой настройки отпечатков Canvas. При создании профиля, отпечаток Canvas по умолчанию находится в режиме Noise, который добавляет случайный шум к Canvas, но также поддерживает режим Real, который соответствует реальному отпечатку Canvas браузера:
Ниже мы создаем 9 отпечатков Canvas для профилей в режиме Noise и Real с помощью Nstbrowser, а затем сравниваем отпечатки Canvas моего локального реального браузера, посещая Browserleaks Canvas fingerprinting detection:
Сравнивая, мы можем легко увидеть, что отпечаток в режиме Canvas Real совпадает с отпечатком моего локального реального браузера, в то время как отпечаток Canvas каждого профиля в режиме Canvas Noise отличается и уникален.
Плюсы:
Минусы:
Законность Canvas fingerprinting зависит от местоположения. В некоторых регионах это может считаться нарушением правил конфиденциальности, если используется без ведома пользователя.
Однако, нормативные акты, регулирующие технологии распознавания отпечатков, все еще развиваются, и правовая ситуация в многих странах пока неясна.
При использовании Canvas fingerprinting операторы веб-сайтов должны следовать местным законам и нормативам о конфиденциальности.
В этой статье мы обсудили Canvas fingerprinting, современный метод веб-отслеживания, используемый владельцами веб-сайтов для идентификации своих пользователей. Мы подробно объяснили, как он работает и как его обойти.
В долгосрочной перспективе отслеживание веб-сайтов неизбежно. Лучший способ - контролировать, как нас отслеживают в Интернете. В этом поможет лучший антидетект-браузер - Nstbrowser.
Современные технологии разблокировки веб-сайтов и антидетект-системы помогают скрыть вашу конфиденциальность и позволяют заниматься веб-скрейпингом.