Кабінет

Статті й порівняння

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 блокує автоматизовані браузери, лише якщо ви ввімкнете це налаштування.

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