Перейти к содержимому

Глоссарий

navigator.webdriver

Одно показание, которое читают первой строкой почти любой проверки на робота, и перевесить его отпечатком нельзя. Браузер, ответивший «да», уже сказал, что им правит программа.

navigator.webdriver это признак, который браузер поднимает, пока у его руля стоит средство автоматизации.

Почему одно показание весит больше прочих

Отпечаток это довод, собранный из многих ответов. Здесь довода нет вовсе: браузер прямо отвечает на вопрос о самом себе.

  • Чтение не стоит сайту ничего

    Одно свойство, без окна с вопросом, и ответ приходит раньше, чем страница дочитана.

  • Дело тут не в редкости

    Остальные показания говорят, насколько вы необычны. Это говорит, сидит ли за клавиатурой человек.

  • Оно никогда не идёт одно

    Сборка без окна называет себя в строке о себе и часто отдаёт пустой список плагинов, поэтому все три читают вместе.

Ваш браузер прямо сейчас

Значения прочитаны в вашем браузере на этой странице и никуда не уходят. Первая строка это то, что проверка на робота спрашивает раньше всего.

Ваша машина прямо сейчас

Признак автоматизации
измеряем на вашей машине
Плагинов в списке
измеряем на вашей машине
Имя браузера о себе
измеряем на вашей машине

Прочитано в вашем браузере и показано здесь. Никуда не отправляется.

Что поднимает это значение

Браузер поднимает его сам, когда открыт знакомый ему канал управления. Со страницы его не поднять и не опустить.

  1. 1

    Подключился драйвер

    Привычный случай: браузером завладело средство испытаний, и браузер об этом говорит.

  2. 2

    Открыт отладочный порт

    Хватает самого открытого порта, даже пока к нему никто не подключился.

  3. 3

    Запущена сборка без окна

    Работа без окна вдобавок переименовывает браузер в строке о себе, и в новом режиме тоже.

Что делает наш движок

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

На приёмке сборки, которая едет сегодня, значение вернулось отрицательным, а свойство за ним по-прежнему читалось как часть браузера, а не как страничный код.

  • Значение читают с настоящей страницы

    Стенд запускает движок теми же доводами, какими его запускает программа, и спрашивает страницу, а не строку запуска.

    false
  • Свойство читается как родное

    Самопроверка печатает исходник за значением, а страничный код такого исходника не даёт.

    native code
  • В имени браузера нет пометки

    Строка, которой браузер называет себя, не называет сборки без окна.

    нет пометки

Неумелая подмена сама становится приметой

Значение переписывается со страницы, и переписывание оставляет след. Свойство перестаёт читаться как родное, а тот же вопрос в кадре или в фоновом потоке возвращает нетронутый ответ.

  • Исходник выдаёт правку

    Напечатайте свойство за значением: у написанного рукой виден свой код, у браузера не видно никакого.

  • Спрашивают и другие миры

    У кадра и у фонового потока свой набор свойств браузера, и страница вправе спросить любой из них.

  • Удаление хуже ответа

    Браузер без этого свойства встречается реже отвечающего, поэтому удаление притягивает то самое внимание, от которого спасало.

Как проверить свой

Панель выше отвечает за браузер, в котором вы это читаете. Внутри программы самопроверка идёт в профиле и против того движка, который этот профиль запустил.

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

Чего это не делает

  • Это не прячет ритм сценария. Ровные паузы, одинаковые пути и сессия без единого промедления выдают машину задолго до того, как дело дойдёт до этого показания.
  • Это не закрывает канал, который нужен автоматизации. Всё, что работает на той же машине, видит открытый канал в строке запуска.
  • Это не отвечает за браузер, который программа не запускала. Панель выше читает ваш обычный браузер, а профиль отвечает только внутри программы.
  • Это не разрывает связь между аккаунтами. Репутация адреса и история аккаунта закрывают их чаще, чем любое отдельное показание.

Проверить

Каждое утверждение выше взято из файла, который можно открыть.

Значение читают с настоящей страницы после настоящего запуска
apps/desktop/test/webdriver-flag.js
Где собирается строка запуска
apps/desktop/src/lib/forkEngine.js
Самопроверка спрашивает и значение, и его исходник
apps/desktop/src/lib/fpAudit.js
Один профиль, открытый с окном и без окна, сверяется по полям
apps/desktop/test/скрытый-режим-живьём.js
Приёмка сборки, которая едет сегодня
engine/приёмка-отчёт.json

Вопросы

Опознаёт ли это значение меня?
Нет. Оно одинаково почти во всех браузерах мира и никого ни от кого не отделяет. Сайту оно нужно, чтобы отбросить сессию раньше, чем взвешено хоть одно другое показание.
Можно ли выставить его из консоли?
Можно, и тогда свойство несёт исходник того, что вы набрали. Проверка, печатающая этот исходник, отличает такое свойство от браузера, отвечающего самостоятельно.
Читает ли его бесплатная проверка на сайте?
Панель выше читает. Проверка отпечатка берёт то, что расходится от машины к машине, а это показание почти везде одинаково.
Отвечает ли профиль без окна иначе?
Не должен, и для этого есть стенд: один профиль открывают обоими способами, а полученные машины сверяют по полям вплоть до рисунка. Имя браузера читают тем же заходом и смотрят, нет ли в нём пометки о работе без окна.
Зачем вообще держать канал управления открытым?
По нему сценарии и синхронизатор ведут настоящий профиль. Канал остаётся на вашей машине, и странице браузер о нём не сообщает.

Посмотрите, что ответит ваш профиль

Самопроверка идёт внутри профиля и показывает все 29 замеров, и зелёные, и красные.