Współczesne metody zabezpieczania stron przed scrapowaniem danych

0

Jakie dzisiaj stosuje się sposoby na zabezpieczenie strony przed skanowaniem? Skupmy się na tym, co może zrobić zwykły programista żeby bota wykryć i zablokować.
Doładowywanie danych przez JS raczej odpada - boty oparte o przeglądarki potrafią to ominąć, a takie dodatkowe requesty tylko podnoszą obciążenie strony.
Stare metody wykrywania botów poprzez dodawanie ukrytych elementów na stronie, sprawdzania headerów etc., już dawno przestały być aktualne.

Odpowiadając na pytania z góry: tak, chcę coś takiego zrobić u siebie. W sumie to całe scrapowanie mógłbym zignorować gdyby nie to że boty nie znają żadnego umiaru, walą ogromne ilości requestów na sekundę i ruch wygenerowany przez nie na stronie jest znacznie wyższy od normalnego i podnosi obciążenie serwera do niebezpiecznego poziomu. Tak że moja cierpliwość się wyczerpała, a ręczne blokowanie zakresów adresów IP to mrówcza robota.

0

Aż z ciekawości spytałem czata GPT:

Rozumiem, że szukasz skutecznych sposobów na zabezpieczenie swojej strony przed skanowaniem i nadmiernym obciążeniem ze strony botów. Oto kilka sugestii, które mogą pomóc:

  1. Użyj systemu CAPTCHA: CAPTCHA jest popularnym narzędziem do odróżniania ludzi od botów. Możesz zaimplementować prostą weryfikację CAPTCHA na swojej stronie, która wymaga od użytkowników rozwiązania prostego zadania, takiego jak rozpoznawanie obrazków lub wpisywanie zniekształconego tekstu. To może skutecznie zniechęcić większość botów.
  2. Ogranicz ilość żądań: Możesz zastosować mechanizm ograniczania częstotliwości żądań HTTP od jednego adresu IP. Na przykład, jeśli otrzymujesz nadmierną liczbę żądań z tego samego adresu IP w krótkim czasie, możesz zastosować blokadę lub opóźnienie odpowiedzi na żądania z tego IP. Możesz także ograniczyć liczbę żądań, jakie można wykonać w określonym czasie.
  3. Analiza zachowania użytkownika: Możesz monitorować i analizować zachowanie użytkowników na swojej stronie, takie jak wzorce żądań, czas spędzony na stronie, sposób nawigacji itp. Jeśli wykryjesz działania, które wydają się być nietypowe dla człowieka, możesz zablokować takie żądania lub wdrożyć dodatkowe kroki weryfikacyjne.
  4. Wykorzystaj usługi ochrony przed botami: Istnieją usługi zewnętrzne, które oferują ochronę przed botami, takie jak Cloudflare Bot Management, Distil Networks czy ReCaptcha Google. Możesz skorzystać z tych usług, które wykorzystują zaawansowane algorytmy do wykrywania i blokowania botów.
  5. Sprawdź nagłówki HTTP: Warto przeanalizować nagłówki HTTP wysyłane przez żądania i sprawdzić, czy są one zgodne z oczekiwaniami przeglądarek internetowych. Boty często nie wysyłają kompletnych nagłówków lub mają nieprawidłowe wartości, więc można wykorzystać to do wykrywania i blokowania botów.
  6. Zastosuj techniki analizy behawioralnej: Możesz użyć zaawansowanych technik analizy behawioralnej, takich jak analiza czasu interakcji, wykorzystanie wskaźników myszy itp. Te metody mogą pomóc w wykrywaniu automatycznych botów.
  7. Wykorzystaj AI i uczenie maszynowe: Możesz rozważyć zastosowanie technik sztucznej inteligencji i uczenia maszynowego do wykrywania botów. Modele oparte na uczeniu maszynowym mogą analizować wzorce zachowań i wykrywać boty na podstawie tego, co jest nietypowe lub podejrzane.

Warto pamiętać, że żadne zabezpieczenie nie jest w pełni niezawodne i można je obejść w niektórych przypadkach. Warto zaimplementować kombinację różnych metod, aby stworzyć bardziej skuteczny system ochrony przed botami.

2
jagoslau napisał(a):

Jakie dzisiaj stosuje się sposoby na zabezpieczenie strony przed skanowaniem? Skupmy się na tym, co może zrobić zwykły programista żeby bota wykryć i zablokować.

Pierwszy raz w WWW? Mam dla ciebie dwa bezsensowne ale praktyczne rozwiązania:

  1. Obfuskacja HTML po stronie serwera i deobfuskacja po stronie klienta, dobre na trywialne skrapery ale cokolwiek używającego silnika WebKit sobie z tym poradzi
  2. Wyższy poziom jazdy - olej HTML i CSS (plain text jest dobry dla nerdów z free software, napisz własny renderer na WebAssembly z użyciem Canvas i patrz jak się boty męczą ;)
2

cloudflare lub podobne gotowe "proxy", dopóki nie masz realnych powodów dlaczego nie to to nic innego nie będzie skuteczniejsze czy tańsze (ktoś już wydał kupę hajsu na pomysły i ich wdrażanie, żebyś ty nie musiał)

1 użytkowników online, w tym zalogowanych: 0, gości: 1