Отпечатки браузера
Технология отпечатков браузера - это способ идентификации и отслеживания пользователей, который создает уникальный «отпечаток», собирая информацию из браузера и устройства (например, User-Agent, разрешение экрана, шрифты и т. д.). Эта технология также может использоваться для определения, управляется ли браузер человеком или автоматическим инструментом.
Например, при использовании Selenium для управления браузером к объекту window добавляется свойство с именем _selenium. Puppeteer при автоматизации Chrome устанавливает свойство window.navigator.webdriver в «true». Проверяя эти свойства, сайты могут определить, используют ли пользователи автоматические инструменты.
Кроме того, операции автоматических инструментов часто очень регулярны и быстры, что значительно отличается от поведения обычных пользователей. Например, обычно человеческие пользователи ненадолго останавливаются после каждого введенного символа при заполнении формы, тогда как автоматические инструменты могут заполнить всю форму за очень короткое время. Анализируя эти поведения, сайты могут определить, используют ли пользователи автоматические инструменты.
В общем, сайты используют различные технологии отпечатков для идентификации пользователей. Как только обнаружится, что пользователь - «робот», аккаунт может быть заблокирован, или IP-адрес может быть внесен в черный список и т. д.
Как автоматизированные инструменты влияют на отпечатки браузера
Автоматизированные инструменты, такие как Selenium и Puppeteer, могут влиять на отпечатки браузера.
Selenium - это часто используемый инструмент автоматизации, который поддерживает несколько браузеров (Chrome, Firefox, Safari) и общается с браузером через WebDriver. Он может управлять браузером с помощью различных языков программирования (таких как Java, Python, C# и т. д.) и может имитировать различные поведения пользователей, такие как клики, прокрутка, заполнение форм и т. д.
Puppeteer общается с браузером Chrome или Chromium через протокол DevTools. Этот протокол позволяет Puppeteer получить доступ ко многим внутренним функциям браузера, включая перехват сетевых запросов, генерацию PDF, скриншоты и т. д.
При использовании этих технологий для работы с браузером, это будет влиять на отпечатки браузера:
User-Agent
С помощью Selenium и Puppeteer вы можете установить User-Agent браузера. Если ваш пользовательский User-Agent не соответствует общепринятым или неразумен, его могут считать роботом на веб-сайте.
JavaScript Environment
Когда Selenium или Puppeteer управляет браузером, он устанавливает свойство window.navigator.webdriver в true. Это стандартный способ сообщить веб-сайтам, что браузер управляется автоматизированными инструментами. Однако это также означает, что любой веб-сайт, который может выполнять JavaScript, может обнаружить это свойство.
Feature Code
При использовании Selenium для управления браузером, он оставляет множество символьных кодов функций с «selenium». Как только веб-сайт распознает их, несомненно, что пользователь управляется Selenium:
webdriver
__driver_evaluate
__webdriver_evaluate
__selenium_evaluate
__fxdriver_evaluate
__driver_unwrapped
__webdriver_unwrapped
__selenium_unwrapped
__fxdriver_unwrapped
_Selenium_IDE_Recorder
_selenium
calledSelenium
_WEBDRIVER_ELEM_CACHE
ChromeDriverw
driver-evaluate
webdriver-evaluate
selenium-evaluate
webdriverCommand
webdriver-evaluate-response
__webdriverFunc
__webdriver_script_fn
__$webdriverAsyncExecutor
__lastWatirAlert
__lastWatirConfirm
__lastWatirPrompt
Можно ли обойти обнаружение автоматизации?
Действительно, это возможно, если вы будете обращать внимание на удаление кода или строк с роботоподобными особенностями при написании скриптов, и постараетесь максимально имитировать действия человека, когда скрипт управляет браузером, например, добавив задержки и т.д.
Прежде чем использовать скрипты автоматизации для доступа к целевому веб-сайту, вы можете использовать инструмент BrowserScan Bot Detection, чтобы проверить, похож ли ваш браузер на реального пользователя.