Blog 24/7

scraping

TAB. 1Hasłopo angielsku
Po angielskucontent scraping
Którą formą pisaćpo angielsku Polski odpowiednik istnieje, ale w praktyce nikt tak nie pisze. Zostaw angielski, polski trzymaj jako synonim.
Inne formyweb scraping · scrapowanie · zbieranie danych ze stron · kopiowanie treści przez boty
KategoriaStrony WWW, WordPress i hosting

Scraping (web scraping, scrapowanie) to automatyczne pobieranie treści albo danych ze strony internetowej w celu użycia ich gdzie indziej. OWASP opisuje go jako zagrożenie automatyczne OAT-011: zbieranie treści aplikacji lub innych danych do wykorzystania poza nią [1]. Wspólne oświadczenie dwunastu organów ochrony danych z 2023 roku definiuje scraping jako zautomatyzowane wydobywanie danych z sieci [3]. Na stronie WordPress widać go jako serię żądań do wpisów, kanału RSS albo REST API, wysyłanych przez boty.

Jak działa

Według OWASP scraper odczytuje wszystkie dostępne ścieżki i wartości parametrów stron oraz API, zbiera odpowiedzi i wyciąga z nich dane [1]. Może korzystać z dostępu bez logowania, z fałszywych kont albo z przejętych danych logowania, a zbieranie może trwać stale lub powtarzać się okresowo [1].

Typowy przebieg pokazuje schemat poniżej.

RYS. 1Pętla scrapera

Scraper nie musi łamać żadnego zabezpieczenia. Wystarczy, że dane są dostępne publicznie albo że identyfikatory rekordów dają się przewidzieć. Wtedy wystarczy zwiększać numer w adresie i zapisywać kolejne odpowiedzi.

Odmiany

OWASP wymienia pod OAT-011 wiele nazw tej samej czynności [1]. Różnią się celem, nie techniką.

OdmianaCelŹródło
Scraping treści, mirroringkopiowanie artykułów i całych serwisów[1]
Porównywarki cenzbieranie cen i ofert sklepów[1]
Agregacja danych, scraping bazybudowa własnego zbioru danych[1]
Boty trenujące modele AI i boty RAGteksty do trenowania i odpowiadania[1]
Zbieranie danych osobowychprofile, adresy e-mail, zdjęcia[3]

Scraping trzeba odróżnić od indeksowania przez wyszukiwarki. Roboty wyszukiwarek zwykle przestrzegają pliku robots.txt, ale RFC 9309 opisuje ten plik jako prośbę kierowaną do robotów, a nie mechanizm wymuszający [2]. Dokument stwierdza wprost, że protokół nie zastępuje właściwych zabezpieczeń treści [2].

W WordPressie

REST API. WordPress udostępnia wpisy, strony i inne zasoby przez REST API. Punkty końcowe zwracają dane stronami, a parametr per_page jest ograniczony do 100 rekordów na żądanie [4]. Każda odpowiedź zawiera nagłówki X-WP-Total i X-WP-TotalPages z łączną liczbą rekordów i stron [4], co ułatwia pobranie całego zbioru w kilku żądaniach. Dokumentacja odradza wyłączanie REST API, bo zepsuje to funkcje panelu; zamiast tego można filtrem rest_authentication_errors wymagać zalogowania do zapytań [5]. Otwarte punkty końcowe z danymi, których nie powinno się publikować, opisuje hasło niezabezpieczony endpoint REST API (unsecured REST API endpoint), a zbieranie loginów tą drogą — enumeracja użytkowników.

// Obronny przykład wzorowany na FAQ REST API: zapytania tylko dla zalogowanych
add_filter( 'rest_authentication_errors', function ( $result ) {
    if ( true === $result || is_wp_error( $result ) ) {
        return $result;
    }
    if ( ! is_user_logged_in() ) {
        return new WP_Error( 'rest_not_logged_in', 'Wymagane logowanie.', array( 'status' => 401 ) );
    }
    return $result;
} );

Taka reguła blokuje także publiczne zastosowania API, na przykład wtyczki pobierające wpisy po stronie przeglądarki, dlatego wymaga testu na środowisku testowym.

Boty AI. Operatorzy robotów zbierających dane do trenowania modeli publikują ich nazwy. OpenAI podaje, że GPTBot pobiera treści, które mogą posłużyć do trenowania modeli, a zablokowanie go w robots.txt oznacza, że treść strony nie powinna być używana do trenowania [6]. Osobny robot OAI-SearchBot służy wyszukiwarce w ChatGPT; jego zablokowanie usuwa stronę z tych wyników [6].

# robots.txt — prośba do robota trenującego modele, nie zabezpieczenie
User-agent: GPTBot
Disallow: /

Zagrożenia i skutki

Dla właściciela strony skutki są trojakie: kopiowanie treści, obciążenie serwera i ryzyko związane z danymi osobowymi. Intensywny scraping zużywa zasoby tak jak inne automatyczne żądania i przy dużej skali przypomina atak odmowy usługi (DoS).

Organy ochrony danych zwracają uwagę na dane osobowe. Wspólne oświadczenie z 24 sierpnia 2023 roku przypomina, że informacje osobowe publicznie dostępne w internecie nadal podlegają przepisom o ochronie danych [3]. Jako ryzyka wymienia ukierunkowane cyberataki, oszustwa tożsamościowe, profilowanie i inwigilację oraz niechciany marketing i spam [3]. Holenderski organ nadzorczy uznał w wytycznych, że scraping obejmujący dane osobowe prawie zawsze narusza RODO, a publiczność informacji nie oznacza zgody na ich zbieranie [8]. Oświadczenie organów zaznacza też, że scraping może stanowić naruszenie ochrony danych osobowych, które trzeba zgłosić [3].

Jak się bronić

Wspólne oświadczenie organów zaleca kilka warstw zabezpieczeń i podkreśla, że żadne pojedyncze zabezpieczenie nie chroni przed wszystkimi szkodami [3].

  • rate limiting: ograniczenie liczby wizyt na godzinę lub dobę z jednego konta albo adresu [3].
  • Monitorowanie nowych kont pod kątem nietypowo intensywnego użycia [3].
  • Wykrywanie wzorców aktywności botów, między innymi po adresach IP [3].
  • CAPTCHA i blokowanie podejrzanych adresów IP [3].
  • Kroki prawne, takie jak wezwania do zaprzestania i żądania usunięcia danych [3].

Na stronie WordPress dochodzą środki techniczne: reguły WAF ograniczające tempo żądań, wymaganie logowania do REST API tam, gdzie nie jest publicznie potrzebne [5], oraz wpisy w robots.txt dla robotów, które je respektują [2]. Nie publikuje się danych, których nie trzeba publikować; tego, czego nie ma na stronie, nie da się zebrać.

Historia i przykłady

Gravatar, 2021. 6 grudnia 2021 roku Sekurak opisał przypadek serwisu z awatarami Gravatar [7]. Ktoś, korzystając z prostej luki w API, przeiterował kolejne numery użytkowników i pobrał ich adresy e-mail oraz powiązane nazwy [7]. Problem był znany co najmniej od końca 2020 roku [7]. Sekurak podkreślił w tytule, że nie był to wyciek danych w klasycznym sensie, lecz scraping publicznie dostępnych danych [7].

Oświadczenie organów, 2023. 24 sierpnia 2023 roku dwanaście organów ochrony danych, między innymi z Kanady, Wielkiej Brytanii, Australii, Szwajcarii i Norwegii, wydało wspólne oświadczenie o scrapingu, skierowane do serwisów społecznościowych i innych operatorów stron z publicznie dostępnymi danymi [3].

TAB. 2

Przypisy

8
  1. [1] OAT-011 Scraping — OWASP Automated Threats to Web Applications · OWASP
  2. [2] RFC 9309: Robots Exclusion Protocol · IETF
  3. [3] Joint statement on data scraping and the protection of privacy · Office of the Privacy Commissioner of Canada
  4. [4] Pagination — REST API Handbook · WordPress.org
  5. [5] Frequently Asked Questions — REST API Handbook · WordPress.org
  6. [6] Overview of OpenAI Crawlers · OpenAI
  7. [7] Wyciek z Gravatar! A nie, czekaj, tylko scraping · Sekurak
  8. [8] Wytyczne dotyczące web scrapingu w kontekście ochrony danych osobowych · ODO Serwis
TAB. 3

Hasła w tym artykule

11
TAB. 4

Linkują tutaj

3

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com