@bulletproofstone

Какие есть способы определения подмены параметров браузером?

Как с помощью JavaScript можно определить, что браузер пытается подменить параметры устройства? Не обязательно обнаружить реальные значение, а просто факт подмены.

Есть антидетект-браузеры, которые подменяют различные параметры, отправляя сайту отличные от фактического, значения, если сайт запрашивает их с помощью Javascript либо HTTP-заголовков:

- Screen Resolution
- Набор шрифтов
- Основной язык и список поддерживаемых языков
- Часовой пояс
- Количество ядер процессора
- Объем оперативной памяти
- Название видеокарты
- Количество медиа девайсов (камера, микрофон, наушники)
- Формат даты на устройстве
- Speech Voices
- Поддерживаемые аудио форматы
- Canvas Fingerprint
- WebGL Fingerprint
- Audio Fingerprint
- DOMRect Fingerprint

Какие есть способы определить факт подмены?

В одной из статей нашёл информацию, что браузер может производить подмену разными способами:

Привожу цитату:

```
"переписать эти функции в исходном коде браузера, до его компиляции. Это самый надежный и самый сложно определяемый способ.
- заинжектиться в работающий процесс вкладки и перехватывать обращения к нужным функциям в реальном времени. Технически сложно, т.к. смещения и адреса функций плывут с каждым обновлением браузера.
- перезаписать нужные нам значения прямо на странице через javascript же, после инициализации страницы, которую мы просматриваем. Самый простой в реализации, но самый отвратительный способ, т.к. сделать это незаметно действительно сложно. Как я покажу дальше, почти все антидетект-браузеры выбрали этот путь, чем подставили своих пользователей."
```

Вопрос, можно ли проверить, какой способ подмены используется в браузере.

И какие именно методы определения подмен существуют? Например, в статье было указано про Object.keys(Object.getOwnPropertyDescriptors(navigator)) для неумелого переопределения свойств Navigator.

Также можно обнаружить использование эмулированной среды, эта информация тоже была в статьях.

Статьи:
https://cpa.rip/stati/antidetect-palivo/?unapprove...
https://habr.com/ru/articles/720588/
https://habr.com/ru/articles/716434/
https://www.zenrows.com/blog/bypass-cloudflare
https://www.zenrows.com/blog/bypass-akamai

Буду благодарен конкретным методам определения подмены.
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Да проще простого, прямо элементарнейше! Приходите на рабочее место пользователя (к его компьютеру или планшету или телефону), и смотрите все нужные свойства и параметры, сравниваете их с теми, что пришли вам на сервер. И готово, вуаля, профит!

P.S. А другого способа нет, потому что вы просите браузер предоставить информацию о себе. И браузер или аддон или пользователь сам решает, что предоставлять, а что - нет.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Не тратьте свое время на это. То что пришло от клиента по умолчанию "грязные данные", все проверки должны быть на сервере кроме этого используйте AntiForgeryToken и httponly cookie.

И да по моему лучше детектить не подмену а поведение.
Как например выбор всех опций товара за микросекунду.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы