Назад до блогу

Чому Playwright виявляють: протокол, runtime і поведінкові таймінги

Скрипт може добре працювати локально, але після розгортання стикатися з CAPTCHA, помилками 403 або збоями входу. Зазвичай платформа не розпізнає конкретний інструмент, а оцінює спостережувані відмінності автоматизації на рівнях протоколу, runtime, відбитка, мережі та поведінкових таймінгів.

Є сценарій, який повторюється знову і знову: локально скрипт працює добре, але після розгортання починає стикатися з перевіркою на людину, помилками 403 або невдалим входом. Перша реакція часто полягає в тому, що сам інструмент було розпізнано.

Однак платформи рідко намагаються визначити, який саме інструмент ви використали. Вони оцінюють різницю між цим відвідуванням і відвідуванням реального користувача. Playwright керує браузером; якщо середовище, яке він запускає, помітно відрізняється від браузера, яким зазвичай користується людина, трафік може бути класифікований як автоматизований. Такі відмінності розподілені між кількома рівнями, і окремий розгляд кожного допомагає точніше визначити причину.

自动化访问从协议、运行时、指纹、网络和行为时序五层累积风险信号

Протокольний рівень подає сигнали ще до рендерингу сторінки

На протокольному рівні видно не вміст сторінки, а форму самого запиту: поєднання заголовків, версію браузера й архітектуру платформи в UA Client Hints, а також порядок параметрів під час встановлення з’єднання.

Автоматизовані середовища в цих місцях часто виглядають надто чистими або надто однаковими. Очікувані заголовки можуть бути відсутні, або значення можуть залишатися настільки фіксованими, що не схожі на параметри комп’ютера, яким людина користується тривалий час. Цей рівень дешево оцінювати, а висновок можна зробити ще до рендерингу сторінки, тому його широко застосовують.

Змінні runtime утворюють другий рівень

Після запуску скриптів сторінки стає доступною ще одна група змінних середовища. Згідно зі стандартом WebDriver, navigator.webdriver зазвичай повертає true, коли браузером керує інструмент автоматизації. До схожих сигналів належать прапорці автоматизації в аргументах запуску, наявність window.chrome, повнота navigator.plugins і navigator.permissions, робота в headless-режимі, а також порожні списки плагінів чи розширень.

У реальних браузерах зазвичай є кілька стандартних елементів, тому сам порожній список може стати ознакою. Ранні методи виявлення сильно зосереджувалися на цьому рівні, бо його легко спостерігати. Сьогодні мало платформ покладаються лише на одну властивість; зазвичай вони оцінюють кілька значень разом.

Відбиток перевіряє узгодженість, а не окремі значення

Далі йдуть параметри пристрою: результати рендерингу Canvas і WebGL, відмінності обробки AudioContext, списки шрифтів, параметри екрана, часовий пояс, мова та інформація про обладнання. Окремо кожне значення може бути нормальним, але разом вони формують відносно стабільний профіль пристрою.

Підозрілими можуть виглядати два випадки. По-перше, параметри можуть не узгоджуватися між собою — наприклад, результат рендерингу схожий на певний клас GPU, а набір шрифтів відповідає іншій операційній системі. По-друге, багато середовищ можуть бути повністю однаковими. Якщо всі завдання запускаються з тієї самої конфігурації, відбитки теж будуть однаковими. Тоді платформа бачить не сто пристроїв, а той самий пристрій сто разів.

Мережевий вихід і географія — жорсткі обмеження

Мережеві чинники майже не пов’язані з самим браузером: чи належить IP дата-центру або домашньому підключенню, чи масово зловживали адресою проксі, чи належить ASN хмарному провайдеру або оператору, чи відповідає DNS-конфігурація регіону IP і чи часто IP перемикається між країнами.

Запит із часовим поясом США, але мережевим виходом у Німеччині, можна помітити без складних методів. Географічні суперечності належать до найдешевших і найлегших для виявлення невідповідностей у всій системі.

Поведінкові таймінги поступово накопичуються

Поведінка людини нерегулярна: перед кліком може бути коротка пауза, швидкість набору змінюється, а іноді користувач повертається, щоб щось виправити. Скрипти часто працюють у точному та повторюваному ритмі, проходять фіксованими маршрутами, не виконують дій поза цільовим сценарієм і створюють значно більшу щільність запитів, ніж людина.

Протягом останніх двох років методи оцінювання продовжували змінюватися. У 2026 році деякі постачальники захисту запустили системи безперервної поведінкової перевірки, які більше не ухвалюють лише одне рішення під час першого відвідування. Вони протягом усієї сесії збирають рухи миші, ритм кліків, траєкторії прокрутки та час перебування на сторінці й у реальному часі надсилають дані на сервер для розрахунку ризику. Оновлення сторінки або перехід на наступну не обнуляє вже накопичені поведінкові сигнали; вони продовжують складатися. Це означає, що характеристик одного завантаження сторінки вже недостатньо — поведінка є процесом.

Чому платформи вважають ці відмінності сигналами ризику

З погляду платформи важливо не те, який інструмент використовує відвідувач, а те, чи схожий цей доступ на нормальне використання сервісу реальною людиною. Спам-реєстрації, масовий скрейпінг і зловживання запитами створюють витрати, тому суперечність у будь-якому вимірі може підвищити оцінку ризику, а кілька суперечностей одночасно стають ще помітнішими.

З іншого боку, просте видалення ознак теж не є правильним напрямом. Відбитки реальних пристроїв повні й внутрішньо узгоджені; відбиток, з якого навмисно прибрано частини, також може виглядати аномально. Реалістичніший критерій зводиться до трьох питань: чи повні ознаки, чи узгоджені параметри між собою і чи є розумні відмінності між різними середовищами?

Встановлення причини — не те саме, що обхід захисту

Розкладання причин до такого рівня потрібне, щоб зрозуміти, де виникає проблема, а не щоб пояснювати обхід захисту. Технічне зниження ймовірності виявлення не дає дозволу на збір даних або автоматизацію сервісу. Межі чіткі: дотримуйтеся robots-правил і умов використання цільового сайту, не збирайте персональну інформацію, не обходьте технічні заходи захисту, контролюйте частоту запитів і не заважайте нормальній роботі сервісу. Це правило не залежить від технічного підходу й має найвищий пріоритет.