paint-brush
Роль TLS Fingerprint у веб-збиранніза@brightdata
Нова історія

Роль TLS Fingerprint у веб-збиранні

за Bright Data6m2024/10/18
Read on Terminal Reader

Надто довго; Читати

Якщо ваш веб-скребок постійно блокується, це може бути пов’язано з відбитком TLS. Навіть якщо ви встановлюєте заголовки HTTP, як у браузері, системи захисту від ботів можуть виявляти автоматичні запити, аналізуючи ваш відбиток TLS під час рукостискання. Такі інструменти, як cURL Impersonate, який імітує конфігурації TLS браузера, можуть допомогти обійти ці блокування. Щоб отримати повну свободу копіювання, розгляньте можливість використання таких рішень, як API браузера Scraping Browser від Bright Data.
featured image - Роль TLS Fingerprint у веб-збиранні
Bright Data HackerNoon profile picture
0-item

Ваш веб-скребок знову заблоковано? Ой, що тепер? Ви створили ці HTTP-заголовки та зробили його схожим на браузер, але сайт все одно зрозумів, що ваші запити автоматизовані. Як таке взагалі можливо? Просто: це ваш відбиток TLS! 😲


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

Anti-Bot вас знову заблокував? Час дізнатися, чому!

Припустімо, що ви маєте справу з типовим сценарієм збирання. Ви робите автоматичний запит за допомогою HTTP-клієнта, як-от Requests у Python або Axios у JavaScript, щоб отримати HTML-код веб-сторінки та отримати з неї деякі дані.


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


Ці інструменти відстежують вхідні запити, відфільтровуючи підозрілі.


Антибот, який рятує невинний сервер


Якщо ваш запит виглядає так, ніби він надійшов від звичайної людини, все готово. інакше? Це буде замуровано! 🧱

Запити браузера проти запитів ботів

Тепер, як виглядає запит від звичайного користувача? легко! Просто запустіть DevTools свого браузера, перейдіть на вкладку «Мережа» та переконайтеся самі:


Вибір веб-запиту в DevTools


Якщо ви скопіюєте цей запит до cURL, вибравши опцію в меню, що відкривається правою кнопкою миші, ви отримаєте щось на зразок цього:

 curl 'https://kick.com/emotes/ninja' \ -H 'accept: application/json' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'cache-control: max-age=0' \ -H 'cluster: v1' \ -H 'priority: u=1, i' \ -H 'referer: https://kick.com/ninja' \ -H 'sec-ch-ua: "Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "Windows"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'

Якщо цей синтаксис виглядає вам як китайський, не хвилюйтеся — перегляньте наш вступ до cURL . 📖


По суті, «людський» запит — це звичайний HTTP-запит із додатковими заголовками (прапорці -H ). Системи захисту від ботів перевіряють ці заголовки, щоб визначити, чи надходить запит від бота чи від законного користувача у браузері.


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


Невідповідність цих заголовків? Це мертва роздача для ботів! 💀


Щоб отримати додаткові відомості, ознайомтеся з нашим посібником із HTTP-заголовків для веб-збирання .

Налаштування заголовків HTTP не завжди є вирішенням

Тепер ви можете подумати: «Легко виправити, я просто виконуватиму автоматичні запити з цими заголовками!» Але зачекайте… 🚨


Виконайте цей запит cURL, який ви скопіювали з DevTools:


Тиражування запиту в cURL


Сюрприз! Сервер відповів вам сторінкою «403 Access Denied» від Cloudflare. Так, навіть із заголовками, схожими на браузер, вас все одно можуть заблокувати!


Зрештою, зламати Cloudflare не так просто. 😅


Але зачекайте, як?! Хіба це не той самий запит, який зробив би браузер? 🤔 Ну не зовсім...

Ключ лежить у моделі OSI

На прикладному рівні моделі OSI браузер і запити cURL однакові. Проте є всі базові шари, які ви можете не помітити. 🫠


Модель OSI


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


Наприклад, вони переглядають вашу IP-адресу , отриману з мережевого рівня. Хочете уникнути цих заборон IP? Дотримуйтеся нашого підручника про те, як уникнути блокування IP-адрес за допомогою проксі-серверів !


На жаль, це ще не все! 😩


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


Ось де речі відрізняються між браузером і автоматичним запитом HTTP! Круто, правда? Але тепер вам, мабуть, цікаво, що це означає… 🔍

Що таке відбиток TLS?

Відбиток пальця TLS — це унікальний ідентифікатор, який створюють рішення для захисту від ботів, коли ваш браузер або клієнт HTTP встановлює безпечне з’єднання з веб-сайтом.


Відбиток TLS браузера Chrome із browserleaks.com/tls


Це як цифровий підпис, який ваша машина залишає під час рукостискання TLS — початкової «розмови» між клієнтом і веб-сервером, щоб вирішити, як вони будуть шифрувати та захищати дані на транспортному рівні. 🤝


Коли ви робите HTTP-запит до сайту, базова бібліотека TLS у вашому браузері або HTTP-клієнті запускає процедуру рукостискання. Дві сторони, клієнт і сервер, починають запитувати один одного про такі речі, як: «Які протоколи шифрування ви підтримуєте?» і «Які шифри ми повинні використовувати?» ❓


TLS рукостискання


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


Уявіть собі це рукостискання, як зустріч двох людей:


Людська версія :

  • Сервер: "Якою мовою ви розмовляєте?"

  • Браузер: "англійська, французька, китайська та іспанська"

  • Сервер: "Чудово, давайте поспілкуємося"


Версія бота :

  • Сервер: "Якою мовою ви розмовляєте?"

  • Бот: «Мяу! 🐈"

  • Сервер: «Вибачте, але ви не схожі на людину. Заблоковано!"


Кішки не люди. Або вони?


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


Щоб підробити відбитки пальців TLS, вам потрібно поміняти конфігурації TLS клієнта HTTP на конфігурації справжнього браузера. Заковика? Не всі HTTP-клієнти дозволяють це робити!


До біса!


Ось тут і вступають у гру такі інструменти, як cURL Impersonate . Ця спеціальна збірка cURL розроблена для імітації налаштувань TLS браузера, допомагаючи вам імітувати браузер із командного рядка!

Чому безголовий браузер теж не може бути рішенням

Тепер ви можете подумати: «Ну, якщо HTTP-клієнти видають «ботоподібні» TLS-відбитки, чому б просто не використати браузер для сканування?»


Великий мозковий рух!


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


Незалежно від того, чи працює браузер у головному чи безголовному режимі, він все ще використовує ті самі основні бібліотеки TLS. Це гарна новина, оскільки це означає, що безголові браузери генерують «людський» відбиток TLS! 🎉


Це рішення, чи не так? Не зовсім… 🫤


Не зовсім...


Ось головне: безголові браузери постачаються з іншими конфігураціями, які кричать: «Я бот!» 🤖


Звичайно, ви можете спробувати приховати це за допомогою стелс-плагіна в Puppeteer Extra , але передові системи захисту від ботів все одно можуть винюхувати безголові браузери за допомогою викликів JavaScript і відбитків пальців браузера.


Отже, так, безголові браузери також не є надійним порятунком від антиботів. 😬

Як справді обійти TLS Fingerprinting

Перевірка відбитків пальців TLS є лише однією з багатьох передових тактик захисту від ботів, які реалізують складні рішення для захисту від скрапінгу. 🛡️


Щоб справді позбутися головного болю, пов’язаного зі зняттям відбитків пальців TLS та іншими неприємними блокуваннями, вам потрібне рішення для очищення нового рівня, яке забезпечує:

  • Надійні відбитки TLS

  • Необмежена масштабованість

  • Суперздатність розгадувати CAPTCHA

  • Вбудована IP-ротація через 72-мільйонну мережу IP-проксі

  • Автоматичні повтори

  • Можливості візуалізації JavaScript


Це деякі з багатьох функцій, які пропонує Scraping Browser API від Bright Data — комплексне рішення для хмарного браузера для ефективного та ефективного сканування Інтернету.


Цей продукт легко інтегрується з вашими улюбленими інструментами автоматизації браузера, включаючи Playwright, Selenium і Puppeteer. ✨


Просто налаштуйте логіку автоматизації, запустіть свій сценарій і дозвольте API Scraping Browser виконати всю брудну роботу. Забудьте про блоки та поверніться до важливого — скачування на повній швидкості! ⚡️


Вам не потрібно взаємодіяти зі сторінкою? Спробуйте Web Unlocker від Bright Data!

Заключні думки

Тепер ви нарешті знаєте, чому роботи на рівні програми недостатньо, щоб уникнути всіх блокувань. Бібліотека TLS, яку використовує ваш HTTP-клієнт, також відіграє велику роль. TLS відбитки пальців? Більше не таємниця — ви її розгадали і знаєте, як її вирішити.


Шукаєте спосіб скребти, не торкаючись блоків? Не дивіться далі, ніж набір інструментів Bright Data ! Приєднуйтеся до місії, щоб зробити Інтернет доступним для всіх — навіть через автоматичні запити HTTP. 🌐


До наступного разу продовжуйте вільно подорожувати Інтернетом!

L O A D I N G
. . . comments & more!

About Author

Bright Data HackerNoon profile picture
Bright Data@brightdata
From data collection to ready-made datasets, Bright Data allows you to retrieve the data that matters.

ПОВІСИТИ БИРКИ

ЦЯ СТАТТЯ БУЛА ПРЕДСТАВЛЕНА В...