Scarnox · Blog

Arkose Labs FunCaptcha: як працюють enforcement-виклики

Arkose Labs, яку багато розробників досі знають як FunCaptcha, — це провайдер капчі, яким користуються великі сайти для реєстрації, входу та платежів. Найвідоміша його функція — enforcement-виклик: коротка головоломка в стилі гри, наприклад поворот об'єкта чи пошук відповідного малюнка, яка з'являється, коли система оцінки ризику вирішує, що відвідувачу потрібна додаткова перевірка. Підтримка Arkose у Scarnox скоро з'явиться. Цей посібник пояснює, як працюють такі виклики, чому вони складніші за прості віджети і які загальні підходи є для легітимної роботи.

Як доставляється виклик Arkose

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

Публічний ключ — це ідентифікатор, який ви шукаєте, коли працюєте зі сторінкою. Так само sitekey ідентифікує віджет PopularCaptcha або reCAPTCHA. Посібник зі пошуку sitekey пояснює, як знайти ці ідентифікатори на сторінці.

Як виглядають виклики

Виклики Arkose зазвичай короткі й візуальні. Наприклад, треба повернути зображення так, щоб воно стояло прямо, вибрати відповідний елемент із набору або пройти послідовність у 3D-сцені. Дизайн часто змінюється, і кожен сайт може використовувати свій набір викликів. Сама головоломка теж є сигналом: те, як відвідувач рухається і скільки часу витрачає, може бути так само важливим, як фінальна відповідь.

Система оцінки ризику

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

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

Чому автоматизація викликає підозру

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

Легітимні підходи

Для власних тестів і легітимних процесів ці підходи зменшують кількість зайвих викликів:

  1. Використовуйте справжній профіль браузера з послідовними налаштуваннями, а не урізану збірку для автоматизації.
  2. Тримайте сесії безперервними, щоб відвідувач не виглядав новим на кожній сторінці.
  3. Дотримуйтесь темпу запитів, який міг би відтворити людина.
  4. Використовуйте тестове середовище провайдера, якщо сайт ваш. Arkose та більшість великих провайдерів пропонують спосіб тестувати інтеграцію без реальної оцінки ризику.
  5. Попросіть власника сайту про allowlist, API або доступну альтернативу, якщо ваша робота легітимна, але її все одно блокують.

Ці підходи знижують частоту появи викликів. Вони не забирають у провайдера право перевіряти сесію, і їх не можна використовувати, щоб обходити захист входу в облікові записи, яких ви не маєте.

Що робитиме солвер Arkose

Солвер Arkose на основі токенів отримував би публічний ключ і URL сторінки, створював би дійсний токен і повертав його вашому коду. Далі ваш код відправив би токен разом із формою, поки той не сплив. Схема інтеграції була б схожою на поточний потік PopularCaptcha, але деталі відрізнялися б. Scarnox опише тип завдання та поля в довіднику API, коли підтримка з'явиться.

Scarnox зараз не розв'язує Arkose у реальному часі. Єдиний чинний тип завдання — PopularCaptcha, proxyless. Підтримка Arkose скоро з'явиться.

Де проходить етична межа

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

Що перевірити перед завданням

Перш ніж планувати будь-яку роботу з процесом, захищеним Arkose, відповідьте на кілька питань. Чи цей процес ваш? Якщо так, для розробки й тестів варто використовувати тестове середовище провайдера та власну копію для staging. Чи завдання легітимне? Збір публічної інформації способом, який дозволяє сайт, — легітимний. Вхід в облікові записи не ваші або створення акаунтів у великих обсягах — ні. Чи пропонує сайт API або канал даних, який робить браузерний процес непотрібним? Багато сайтів це мають, і це швидше й стабільніше, ніж автоматизувати виклик.

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

Нарешті, заздалегідь вирішіть, що робить завдання, коли виклик не вдається пройти. Чиста помилка із записом у журналі набагато краща, ніж шторм повторних спроб, який шкодить сайту і призводить до блокування вашого трафіку.

Scrape responsibly

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

Наступні кроки