JavaScript-перевірка чи блокування за IP: два підходи до захисту від ботів

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

Боти і фрод9 хв читання
Зміст
  1. Блокування за IP: як воно працює
  2. JavaScript-перевірка: як вона працює
  3. Порівняння підходів
  4. Чому їх поєднують
  5. Як це впливає на швидкість сторінки
  6. Приклад: три візити очима двох шарів
  7. Де перевірка не потрібна або шкодить
  8. Як це влаштовано в ArtisanClo
  9. Коротко

Коли рекламодавець вирішує захиститися від ботів, перше питання зазвичай технічне: «Блокувати за IP чи ставити скрипт на сторінку?» Це два різні способи дивитися на візит. Блокування за IP оцінює, звідки прийшов запит. JavaScript-перевірка оцінює, що за програма його надіслала. Кожен підхід має свою сліпу зону, і саме тому серйозний захист не обирає, а поєднує їх.

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

Блокування за IP: як воно працює

Сервер отримує запит і знає про нього небагато: IP-адресу, заголовки браузера, адресу сторінки, з якої прийшли. Але з IP можна дізнатися чимало корисного:

  • кому належить мережа: домашній провайдер, мобільний оператор, хостинг, хмара (за номером автономної системи, ASN);
  • країну й місто з точністю, якої вистачає для гео-фільтра;
  • позначки в базах: відомий VPN, проксі, Tor, адреса зі спам-пасток;
  • історію: скільки разів ця адреса вже приходила і чим це закінчувалося.

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

Що ловить блокування за IP

  • Серверних ботів. Більшість дешевих ботів, парсерів і сканерів працюють у дата-центрах. Блок за ASN хостингу прибирає їх майже без помилок. Детальніше в статті VPN, проксі та IP дата-центрів.
  • Відомі VPN і серверні проксі. Їхні адреси регулярно потрапляють у бази.
  • Адреси, що повторюються. Ліміт кліків з одного IP і чорний список IP відсікають набридливих візитерів і конкурента, який клікає з офісу.
  • Чуже гео. Клік із країни, на яку ви не таргетувалися, майже ніколи не покупець.

Слабкі місця блокування за IP

  • Резидентні й мобільні проксі. Бот виходить у мережу через адресу домашнього абонента або SIM-картку оператора. Для фільтра за IP це звичайна людина. Цьому присвячена окрема стаття: резидентні та мобільні проксі.
  • Спільні адреси. За однією мобільною адресою сотні абонентів, за офісною десятки співробітників. Блок такої адреси відсікає живих.
  • Ротація. Бот, який змінює адресу на кожен клік, обходить ліміти частоти й чорні списки.
  • Запізнення баз. Нова адреса потрапляє в базу за години чи дні, і за цей час встигає зробити свою справу.
  • Немає погляду всередину. IP нічого не каже про те, браузер це чи скрипт, чи є в нього екран і чи рухається миша.

JavaScript-перевірка: як вона працює

Сторінка віддає відвідувачу невеликий скрипт. Він виконується в браузері й збирає те, що видно лише зсередини:

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

Скрипт надсилає результат на сервер, сервер ухвалює рішення. Як влаштований відбиток і де його підробляють, розповідаємо в статті headless-браузери та відбиток браузера.

Що ловить JavaScript-перевірка

  • Програми без браузера. Парсери й прості боти, які завантажують сторінку, але не виконують скрипт, не повернуть відповіді взагалі. Це сильна ознака.
  • Headless-браузери та автоматизацію. Навіть на резидентній адресі бот на керованому браузері залишає сліди.
  • Підробку пристрою. «iPhone» із серверною відеокартою та екраном 1920×1080 видає себе суперечністю.
  • Розбіжність мережі й системи. IP з Німеччини, а пояс і мова азійські. Мережа цього не бачить, скрипт бачить.
  • Механічну поведінку. Рівні рухи, миттєвий вихід, клік без жодного руху перед ним.

Слабкі місця JavaScript-перевірки

  • Час. Скрипт треба завантажити, виконати й дочекатися відповіді сервера. Це затримка, якої блокування за IP не має.
  • Не всі візити її виконують. Вбудовані браузери соцмереж іноді вантажать сторінку у фоні й заморожують таймери; старі телефони виконують скрипт повільно; частина людей іде раніше, ніж перевірка закінчилася.
  • Її можна підробити. Дані приходять від клієнта, отже просунутий бот може їх підмінити. Антидетект-браузери для цього й створені.
  • Хибні спрацювання на незвичних пристроях. WebView у застосунках, браузери з посиленою приватністю, розширення, що блокують відбиток: усе це схоже на «підробку», хоча за екраном людина.
  • Залежність від місця встановлення. Скрипт працює лише там, де він стоїть. Якщо посилання веде на сторінку без скрипту, перевірки не буде.

Порівняння підходів

Блокування за IP JavaScript-перевірка
Коли вирішує до віддачі сторінки після завантаження скрипту
Вплив на швидкість майже немає десяті частки секунди
Серверні боти ловить чудово ловить, але пізніше й дорожче
Боти на резидентних і мобільних IP майже не бачить бачить за браузером і поведінкою
Програми без JavaScript ловить, лише якщо адреса серверна ловить за відсутністю відповіді
Підробка адресу підміняють проксі дані підміняють антидетект-браузери
Головний ризик помилки спільні адреси, широкі блоки WebView, приватні браузери, повільні телефони

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

Чому їх поєднують

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

Робоча схема виглядає так:

  1. Мережа як перший шар. Жорстко відсікаються дата-центри, відомі боти, адреси з чорного списку й чуже гео. Це дешево, швидко й майже без помилок.
  2. Браузер як другий шар. Усе, що пройшло мережу, перевіряє скрипт: автоматизацію, відбиток, пояс і мову, поведінку.
  3. Оцінка довіри замість заборон. М'які сигнали (позначка про проксі, мобільна адреса, розбіжність поясу, відсутність мітки кліку) не блокують візит самі по собі, а складаються. Рішення ухвалюється за сумою.
  4. Статистика за джерелом як третій погляд. Навіть найкраща перевірка одного візиту не замінить погляду на майданчик загалом: частка підозрілих візитів, конверсії, апрув. Саме так видно кліки з ферм і систематичний фрод у рекламі.

Так помилки складаються на користь рекламодавця: живу людину з VPN не відріже одна ознака, а бот на домашній адресі не пройде лише тому, що адреса чиста.

Як це впливає на швидкість сторінки

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

  • Вирішувати мережеве заздалегідь. Поки браузер вантажить скрипт, сервер уже може перевірити IP, ASN і бази. На момент, коли скрипт надішле дані, половина рішення готова.
  • Маленький скрипт і одне з'єднання. Що менше запитів і що ближче сервер до відвідувача, то коротше очікування. Стиснений скрипт і повторне використання з'єднання заощаджують десятки мілісекунд на мобільному інтернеті.
  • Не чекати поведінку там, де вона не потрібна. Перевірка рухів миші вимагає, щоб відвідувач щось зробив на сторінці. Її вмикають для суворих джерел, а не для всього трафіку.
  • Відсікати серверних ботів до скрипту. Якщо бота відсіяно за мережею, йому не потрібно віддавати скрипт: це економить ресурси сервера й робить статистику чистішою.
  • Вимірювати. Дивіться на час від кліку до показу сторінки на реальних візитах, а не на лабораторний замір на швидкому комп'ютері.

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

Приклад: три візити очима двох шарів

Щоб побачити, як підходи доповнюють один одного, розберемо три кліки за однією кампанією з таргетингом на Німеччину.

Візит А. Адреса хмарного хостингу у Франкфурті, заголовок браузера: свіжий Chrome на Windows. Мережевий шар відсікає візит одразу: мережа хостингу в рекламному трафіку означає сервер, а не покупця. Скрипт навіть не знадобився, сторінку не віддавали, сервер не витратив ресурсів.

Візит Б. Адреса домашнього провайдера в Мюнхені, у базах чисто, мітка кліку на місці. За мережею придратися нема до чого. Скрипт повідомляє: прапорець автоматизації ввімкнено, відеокарта програмна, часовий пояс America/New_York, рухів миші до кліку не було. Блокування за IP пропустило б цей візит, і ви заплатили б за нього як за живий. Браузерний шар його зупиняє.

Візит В. Мобільна адреса німецького оператора, позначена як спільна, вбудований браузер соцмережі, пояс Europe/Berlin, мова німецька. Скрипт виконався із затримкою, бо застосунок вантажив сторінку у фоні. Якби фільтр різав мобільні адреси або вимагав миттєвої відповіді скрипту, цього покупця було б втрачено. Оцінка довіри бачить, що ознаки узгоджені, і пропускає візит.

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

Де перевірка не потрібна або шкодить

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

Як це влаштовано в ArtisanClo

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

Коротко

Блокування за IP і JavaScript-перевірка відповідають на різні питання: «звідки прийшов візит» і «що за програма його надіслала». Перше швидке, дешеве й надійне проти серверних ботів, але сліпе до проксі на домашніх і мобільних адресах. Друга бачить браузер зсередини, але коштує часу, підробляється просунутими ботами й помиляється на незвичних пристроях. Їхні слабкі місця майже не перетинаються, тому мережу ставлять першим шаром, браузер другим, м'які ознаки складають в оцінку довіри, а підсумок перевіряють статистикою за джерелами. Як порахувати, у що обходяться пропущені боти, читайте в статті скільки бюджету втрачається на ботах.

Часті запитання

01

Що краще для захисту від ботів: блокування за IP чи JavaScript-перевірка?

Жоден підхід не закриває задачу повністю. Блокування за IP швидко й дешево відсікає сервери, відомі VPN і адреси з чорних списків, але не бачить ботів на резидентних і мобільних адресах. JavaScript-перевірка ловить автоматизовані браузери й підробку пристрою, але її можна не виконати або підробити. Найнадійніше: мережа як перший шар і браузер як другий.

02

Чи сповільнює JavaScript-перевірка завантаження сторінки?

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

03

Чи можна обійти JavaScript-перевірку?

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

04

Чому блокування за IP ріже живих людей?

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

05

Що робити з відвідувачами, у яких вимкнено JavaScript?

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

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

9 хв читання

Резидентні та мобільні проксі: чому бот із домашнім IP проходить фільтр і як його все-таки побачити

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

8 хв читання

Антибот для сайту: що це таке і як працює захист від ботів

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

9 хв читання

Як відфільтрувати ботів у рекламному трафіку й не втратити живих людей

Фільтрація ботів — це не одна галочка «антибот», а ланцюжок перевірок від IP-адреси до поведінки в браузері. Розбираємо, як його вибудувати, щоб бюджет ішов на людей.

Перевірте свій трафік на ділі

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