Проверка приватности в разных графических backend
Проверяйте сигналы Canvas, WebGL и WebGPU в программном и аппаратном рендеринге, а также в headless и headed сессиях.
BotBrowser Team
Нужна структурированная документация по теме Отпечатки?
Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.
BotBrowser поддерживает документированные Linux backend для WebGL и WebGPU; результат зависит от проверенных backend, режима, хоста и профиля. Графический backend влияет не только на частоту кадров. Canvas, WebGL и WebGPU раскрывают сигналы браузера и графической среды. При переходе с рабочей станции на Linux-сервер, программный рендеринг или headless-сессию эти сигналы могут измениться. WebNN является соседним интерфейсом со своими вопросами доступности и backend; он разобран в материале Доступность WebNN, backend и конфиденциальность.
Кратко
- Запишите браузер, профиль, хост, режим отображения и backend в одной
matrixRow. - Используйте поддерживаемый сценарий и укажите
completionStateдо изменения одного входного параметра. - Отделяйте возможности Canvas, WebGL и WebGPU от времени CPU и задержки снимка.
- При выходе обязательной возможности или видимого результата за документированную границу приостановите выпуск и сохраните откат.
Содержание
Составьте матрицу
Запишите версию BotBrowser, семейство профилей, целевую платформу, хост, режим браузера, display service и backend. Сохраните один и тот же пользовательский сценарий и меняйте только одну среду за раз. Сравните headed, headless и хост, который используется в production.
Профиль и основная версия браузера образуют одну единицу выпуска. Результат для одной версии не заменяет проверку другой версии.
Сравнивайте семейства сигналов
Canvas, WebGL, WebGPU, геометрия экрана и timing могут быть связаны, но не являются одним значением. Стабильность одной характеристики не доказывает согласованность всей графической идентичности. Сначала проверьте видимый результат сценария, затем семейства сигналов в выбранном профиле и в пределах документированной поддержки. Если расхождение требует более глубокой проверки, помогут доказательства выполнения, описанные в материале V8Log Forensics: доказательства выполнения для проверки приватности.
Публичный материал должен объяснять способ сравнения и границы поддержки. Скрипты обнаружения, пороги и внутренние логи остаются в контролируемых записях.
В строке journeyRevision обозначает шаги и видимый критерий завершения, completionState описывает показанное страницей состояние, а baselineStatus указывает, выполнила ли принятая конфигурация этот критерий. backend называет графический путь, а не результат пользователя. matrixRow описывает конкретное сочетание, но не даёт общей гарантии совместимости. Добавьте ответственную команду и дату следующего пересмотра.
Разделяйте три результата. «Завершено» означает, что сценарий достиг ожидаемого состояния. «Возможность недоступна» означает, что требуемая графическая операция не работает, даже если страница загрузилась. «Результат приложения отличается» означает, что сценарий завершился, но поведение изменилось по пока не установленной причине. Запишите наблюдение, по которому выбрана категория. Само отличие не доказывает, что причина в браузере.
Перед оценкой кандидата повторите принятую строку на том же хосте и fixture. Если она уже не выполняет критерий, сначала восстановите базовый результат. После успешной проверки используйте для кандидата тот же сценарий, viewport, начальное состояние хранилища и revision приложения, меняя только один важный параметр. Если результат различается, ещё раз запустите принятую строку, чтобы исключить временный сбой.
Откат должен вернуть всё известное сочетание: пару версии браузера и профиля, политику хоста, путь отображения, политики маршрута и хранения, а также графический backend. Старого бинарного файла недостаточно, если изменились библиотеки хоста или display service. Публичное утверждение ограничьте проверенными платформой, линией браузера, профилем, режимом, backend и сценарием, отдельно перечислив непроверенные условия.
Снимок показывает обрезку или отсутствие элемента управления, но не подтверждает доступность графического API или соответствие сигнала приватности политике. Если WebGPU не обязателен, оцените предусмотренный резервный режим. Если он обязателен, строка не проходит, даже когда остальная страница работает. Видимое отличие при завершённом действии нужно оценивать по требованию сценария, а не считать автоматически нарушением приватности.
Фиксируйте программный рендеринг
Linux-сервер может использовать программный рендеринг из-за отсутствия GPU, ограничений контейнера или требования воспроизводимого пути. Запишите backend, display service, библиотеки и режим браузера. Отдельно оцените согласованность приватности и операционную стоимость. О программном рендеринге и откате возможностей рассказано в материале Программный рендеринг WebGL, откат возможностей и приватность. Об измеренном сравнении программных бэкендов в Linux читайте в материале Mesa llvmpipe и SwiftShader для Chromium в Linux.
Если нужная сценарию возможность отсутствует, остановите эту строку матрицы и выберите поддерживаемый backend. Не меняйте границу приватности непроверенным flag. Что может сделать страница, если устройство WebGPU потеряно в ходе сессии, разобрано в материале Восстановление после потери устройства WebGPU.
Связанные материалы.
Canvas Fingerprinting, WebGL Fingerprinting и WebGPU Fingerprinting описывают семейства сигналов. Оценка кроссплатформенной согласованности описывает матрицу хостов.
BotBrowser поддерживает документированные программные графические backend в Linux для WebGL и WebGPU, но не гарантирует одинаковую работу на всех GPU и во всех средах Linux; результат зависит от проверенных backend, режима браузера, хоста и профиля.
Источники
Практический итог
- Сопоставьте версию браузера и семейство профилей.
- Запишите хост, цель, режим, display path и backend.
- Используйте реальный поддерживаемый сценарий.
- Проверяйте Canvas, WebGL, WebGPU, экран и timing вместе.
- Храните probes, пороги, логи и клиентские материалы в закрытых записях.
Для каждого поддерживаемого окружения храните именованную matrixRow, повторяйте тот же journeyRevision и разделяйте видимый результат, сигналы приватности и производительность. Продвигайте backend только когда пара браузер/профиль, хост, режим отображения и нужная графическая операция остаются в документированной границе; иначе сохраняйте принятую строку и пакет отката.
Эта статья входит в руководство: Что такое отпечаток браузера?
Похожие статьи
Доступность WebNN, backend и конфиденциальность
ОтпечаткиСнятие отпечатков WebGPU: следующее поколение отслеживания GPU
ОтпечаткиПрограммный рендеринг WebGL, откат возможностей и приватность
РазвертываниеMesa llvmpipe и SwiftShader для Chromium в Linux
ПлатформаСогласованность профиля в headless и headed браузере
ОтпечаткиИнформация об адаптере WebGPU и конфиденциальность пользователя
Выполните ту же проверку в BotBrowser
Загрузите профиль, сохраните внутри браузера те сигналы, о которых только что прочитали, и подтвердите результат на своей машине до раскатки.