Кабинет

Статьи и сравнения

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 блокирует автоматизированные браузеры, только если вы включите эту настройку.

Читайте также