Методы защиты от веб-скрапинга и как их обойти
Попередній перегляд
Олександр Л.
11 czerwca 2025
1856
1856
11 czerwca 2025
Web scraping to zautomatyzowany zbiór informacji ze stron internetowych. Może być potrzebny do różnych zadań, wśród których znajdują się wyszukiwanie informacji, tworzenie katalogów danych, monitoring zmian i aktualizacji, a także indeksacja stron internetowych. Jednak web scraping (znany również jako parsowanie) nie jest zawsze wykorzystywany wyłącznie do celów informacyjno-statystycznych — jest również stosowany w innych zadaniach, często związanych z działalnością gospodarczą:
- Zbieranie cennych lub płatnych danych;
- Plagiat lub uzyskanie niesprawiedliwej przewagi konkurencyjnej;
- Przeciążanie serwera określonej strony (jako akt ataku technicznego);
- Obniżanie przychodów konkurentów (boty parsujące omijają modele subskrypcji);
- Zmanipulowanie analizą odwiedzin stron internetowych. Dlatego właściciele stron wdrażają zabezpieczenia przeciwko parsowaniu, kierując się kwestiami bezpieczeństwa, ochrony prawnej i gospodarczej.
Istniejące metody web scrapingu i sposoby ich obejścia
- Ograniczenie prędkości lub blokada IP. Wykrywane są liczne i nadmiernie częste zapytania z jednego IP lub ich zakresu (np. setki zapytań na sekundę), po czym takie IP są blokowane lub ograniczane w szybkości zapytań na jednostkę czasu. Sposoby obejścia:
- Rotacja IP, używanie IP z różnych zakresów i lokalizacji geograficznych.
- Ustalanie opóźnień między zapytaniami oraz losowych interwałów.
- Wprowadzanie losowych działań między zapytaniami dla imitacji zachowania użytkownika.
- Filtrowanie User-Agent. Blokada podejrzanych lub brakujących nagłówków HTTP. Sposoby obejścia:
- Imitacja prawdziwych nagłówków rzeczywistych przeglądarek.
- Okresowa zmiana nagłówków.
- Rozrzedzanie ciągu User-Agent między sesjami dostępu.
- Wykonywanie skryptów JavaScript. Dostarczanie danych dopiero po pełnym wyrenderowaniu strony WWW przez skrypt JavaScript po stronie klienta, możliwe z opóźnieniami renderowania. Sposoby obejścia:
- Wykorzystanie headless przeglądarek.
- Wykorzystanie usług opartych na przeglądarkach z renderingiem stron.
- Captcha. Realizacja zadań związanych z ludzką działalnością mentalną (np. rozpoznanie tego, co jest na obrazkach, wpisanie tekstu, wykonanie obrotu obiektów itd.). Sposoby obejścia:
- Użycie zautomatyzowanych lub "humanizowanych" serwisów rozpoznawania i obsługi Captcha.
- Unikanie uruchamiania Captcha poprzez symulację zachowania człowieka na stronach.
- Wykorzystanie narzędzi zapobiegających uruchomieniu Captcha.
- Rozpoznawanie odcisków przeglądarki. Zbieranie danych i analiza właściwości urządzenia (WebGL, canvas, czcionki, system operacyjny, rozdzielczość ekranu i inne), z którego uzyskuje się dostęp do strony, w celu rozpoznania botów. Sposoby obejścia:
- Prioryczny ukryte wtyczki.
- Narzędzia podmiany danych.
- Wykorzystanie realnych profili przeglądarek z regularną rotacją.
- Śledzenie plików cookie. Monitorowanie sesji odwiedzin oraz ich analiza pod kątem "ludzkiego" zachowania. Sposoby obejścia:
- Zarządzanie plikami cookie za pomocą narzędzi symulujących realizację zhumanizowanej sesji.
- Zapisywanie informacji o sesjach między zapytaniami.
- Cykliczne czyszczenie plików cookie.
- Dodawanie niewidzialnych pól do wypełniania i wysyłania formularzy. Ukryte pola Honeypot na stronach zazwyczaj są wypełniane tylko przez boty, a nie ludzi, co oznacza je jako podejrzane. Sposoby obejścia:
- Analiza stron pod kątem występowania Honeypotów, aby uniknąć wypełniania i wysyłania ukrytych formularzy.
- Autoryzacja oparta na tokenach specyficznych dla sesji. Wydawanie każdemu użytkownikowi tokenów dla każdej unikalnej sesji. Sposoby obejścia:
- Wstępna analiza strony w celu wykrycia takich tokenów przed rozpoczęciem wysyłania zapytań o dane.
- Analiza ruchu myszy. Wykrywa brak ruchów myszy lub nienaturalny, nietypowy dla człowieka sposób poruszania się. Sposoby obejścia:
- Imitacja naturalnego ruchu myszy, w tym przewijania i kliknięć.
- Użycie bibliotek naśladujących naturalne zachowanie myszy.
- Analiza schematów ruchu w ruchu sieciowym. Monitorowanie częstotliwości zapytań, ich kolejności, czasu i innych zachowań, które mogą wskazywać na automatyzację. Sposoby obejścia:
- Imitacja rzeczywistego zachowania człowieka podczas zagłębiania się w strukturę strony.
- Dodawanie losowych opóźnień między zapytaniami.
- Skanowanie stron w nieprzewidywalnej kolejności.
Podsumowanie
Współczesny web scraping nie zawsze jest bezpieczny, dlatego strony internetowe muszą wprowadzać metody ochrony przed nim, odróżniając roboty od ludzi-użytkowników.
