navigator.webdriver: что означает флаг автоматизации и как его используют сайты
Свойство navigator.webdriver есть в каждом современном браузере, и скрипты страницы могут его прочитать. Оно равно true, когда браузером управляет программа автоматизации, и false в браузере, который открыл человек. Это самая дешевая проверка на ботов и одновременно одна из самых простых в обходе, поэтому полезно знать, что она говорит, а что оставляет открытым.
Проверьте свой браузер прямо сейчас
Проверяю браузер…
Откуда берется флаг
Стандарт W3C WebDriver, протокол, на котором работает Selenium, описывает флаг «webdriver-active» и требует от браузеров показывать его страницам как navigator.webdriver. Так делают Chrome, Firefox, Safari и Edge. Флаг включается, когда браузер запускают под автоматизацией: через chromedriver, geckodriver или safaridriver для Selenium, а также по умолчанию в браузерах, которые запускают Puppeteer и Playwright.
Как проверить свой браузер
Откройте консоль разработчика (F12, вкладка Console) и введите navigator.webdriver. Браузер, который вы запустили сами, выведет false. Проверка на этой странице читает то же значение и показывает его в отчете вместе с другими следами автоматизации.
True говорит много, false говорит мало
Значение true почти всегда означает автоматизацию: тест, монитор, парсер или бота. Разработчик может увидеть его в окне, которое открыл тестовый инструмент, но у обычных посетителей его не бывает.
Значение false доказывает гораздо меньше. В инструментах автоматизации есть настройки, которые запускают браузер без флага, а фреймворки для ботов прячут его одним из первых шагов. Флаг отсеивает честные инструменты и небрежных ботов, остальных приходится ловить другими сигналами.
Когда флаг прячут
Скрипт внутри страницы может изменить то, что возвращает свойство, и такое изменение обычно оставляет следы, которые ищет внимательная проверка. Браузер, запущенный без флага, имеет чистое свойство, но бот работает там же, где и раньше: часто в дата-центре, часто с программным рендерингом и с поведением быстрее и ровнее человеческого. Когда бот отправляет часть запросов вне браузера через HTTP-библиотеку, его выдает еще и TLS-рукопожатие этих запросов.
Как использовать это на своем сайте
Прочитать navigator.webdriver в скрипте своей страницы легко, но все, что отправляет браузер, можно подделать. Отправляйте значение на сервер вместе с другими сигналами и принимайте решение там. Если сайт посещают ваши собственные тесты или мониторы, внесите их в список разрешенных, чтобы флаг их не блокировал.
SpoofLens считает true сильной находкой и дает вердикт «автоматизация». Через API и плагин для WordPress / WooCommerce вы получаете этот вердикт с причинами для каждой регистрации или заказа.
Частые вопросы
- Почему в моем браузере navigator.webdriver равен true?
- Браузер запустил инструмент автоматизации: тестовый фреймворк, парсер, RPA-робот или облачный браузерный сервис. Закройте это окно и откройте браузер обычным способом, и значение вернется к false.
- Достаточно ли проверки navigator.webdriver, чтобы остановить ботов?
- Нет. Она останавливает инструменты, которые сами о себе сообщают. Боты, сделанные для злоупотреблений, ее прячут, поэтому сочетайте ее с проверками согласованности, сети и поведения.
- Блокирует ли SpoofLens посетителей с этим флагом?
- Сам SpoofLens никого не блокирует. API возвращает вердикт, а плагин для WordPress / WooCommerce блокирует автоматизированные браузеры, только если вы включите эту настройку.
Читайте также
- Отпечаток браузера: что это такое и как он работает
- Как сайты обнаруживают ботов и автоматизированные браузеры
- Отпечатки canvas, WebGL и аудио: как они работают
- Утечка WebRTC: что это такое и как проверить свой браузер
- Часовой пояс против IP: почему сайты замечают ваш VPN
- Как сайты распознают антидетект-браузеры