Boty skanujące sklep: wykryj i zablokuj je skutecznie

Wprowadzenie

Dlaczego w ogóle boty zaglądają do Twojego sklepu i co z tym zrobić

Jak wykrywać i blokować boty skanujące sklep? To pytanie wraca jak bumerang u właścicieli e‑commerce, zwłaszcza w okresach wzmożonej sprzedaży. Automaty skanujące potrafią w kilka minut przejrzeć tysiące podstron, wyciągnąć ceny, stany magazynowe, a nawet przeciążyć serwer. Efekt? Utrata przewagi cenowej, błędy w koszyku, wolniejsze ładowanie i gorsze doświadczenie klienta. Dobra wiadomość: wykrywanie i blokowanie botów to proces, który da się uporządkować i zautomatyzować, bez psucia UX dla realnych kupujących.

Czym są boty skanujące i jakie szkody wyrządzają

Poznaj wroga: scrapery, skanery, crawlery i niechciane automaty

Boty skanujące (scrapery, crawlery) to zautomatyzowane skrypty odwiedzające strony w tempie i skali nieosiągalnej dla człowieka. Działają w kilku kategoriach:

  • Scraping cen i treści – konkurencja porównuje Twoje ceny i opisy, by dynamicznie je korygować.
  • Skanowanie katalogu produktów – zbieranie danych o stanach magazynowych i wariantach.
  • Carding i abuse checkoutu – testowanie skradzionych kart na tanich produktach lub kosztach wysyłki.
  • Enumeracja i dziobanie API – odkrywanie endpointów i wrażliwych parametrów.
  • Agresywne crawlowanie – setki żądań na sekundę, które potrafią zdławić serwer albo Twój koszyk.

Nie wszystkie boty są złe. Dobre to m.in. wyszukiwarki (Googlebot), asystenci dostępności czy narzędzia monitorujące uptime. Sztuka polega na tym, by ograniczyć złe, a nie przeszkadzać dobrym.

Wczesne sygnały: jak rozpoznać, że masz problem

Sprawdź swoje logi i analitykę, zanim spłonie kuchnia

  • Nagłe skoki ruchu bez wzrostu konwersji i wysokie bounce rate.
  • Wzrost błędów 404 i 429 (Too Many Requests) w krótkich oknach czasowych.
  • Setki uderzeń w te same adresy: /search, /cart, /checkout, /?add-to-cart=ID, /wp-json/… (w sklepach na WP).
  • Nietypowe i zbyt „techniczne” nagłówki User-Agent: python-requests, curl, Go-http-client, Scrapy, HeadlessChrome.
  • Dużo żądań bez zasobów statycznych (brak CSS/JS), co sugeruje „gołe” żądania HTTP bez renderowania strony.
  • Ruch z data center (ASN dużych chmur) i powtarzalne odcinki IP.
  • Wzorce w godzinach poza szczytem: regularne „piki” co 5–10 minut.

Jeśli nie masz jeszcze centralizacji logów, ustaw szybki podgląd w narzędziu typu ELK/Opensearch, Datadog, Grafana Loki lub choćby prosty raport z serwera WWW.

Jak wykrywać i blokować boty skanujące sklep?

Strategia w trzech warstwach: sygnały, reguły, ciągłe doskonalenie

Zacznij od podziału na warstwy: (1) wykrywanie, (2) kontrola dostępu, (3) monitoring i adaptacja. Dzięki temu działasz metodycznie, nie „na czuja”.

Wykrywanie: sygnały techniczne i behawioralne

Nie wierz jednemu wskaźnikowi — patrz na zestawy cech

  • User-Agent i nagłówki: flaguj puste UA, biblioteki (python, curl, wget, scrapy), HeadlessChrome. Zwróć uwagę na brak typowych nagłówków przeglądarkowych (Accept-Language, Sec-Ch-Ua).
  • Tempo i rytm żądań: >60 żądań/min z jednego IP na stronach produktowych to czerwone światło. Boty pracują równym, mechanicznym rytmem.
  • Ścieżki i parametry: nienaturalne przeklikiwanie kategorii po kolei, enumeracja ID produktów, ataki na endpointy wyszukiwania i filtrów.
  • Zasoby statyczne: dużo HTML, zero CSS/JS/obrazów — klasyczny sygnał scrapera.
  • Sygnalizatory (honeypoty): ukryty link „nie do kliknięcia” lub pole formularza dla ludzi. Kliknięcie/uzupełnienie = bot. To tani i skuteczny test.
  • Odwrotne DNS i ASN: ruch z zakresów znanych chmur (OVH, AWS, GCP) częściej bywa automatyczny. Nie zawsze blokuj, ale przypisz wyższe ryzyko.

Weryfikacja dobre vs złe boty

Whitelista to Twoja poduszka bezpieczeństwa

  • Wyszukiwarki: weryfikuj reverse DNS dla googlebot.com, bing.com itd. Same nagłówki można sfałszować.
  • Integracje: znane płatności, bramki, monitoring — trzymaj na białej liście IP/ASN.
  • Plik robots.txt: traktuj jako grzecznościową wskazówkę. Złe boty go ignorują, ale dobre uszanują.

Szybkie blokady i tarcze prewencyjne

Zacznij od prostych reguł — efekt zobaczysz w godzinę

  • WAF i reguły aplikacyjne: włącz gotowe zestawy (OWASP, Bot Management) w Cloudflare, Fastly, Akamai, AWS WAF lub ModSecurity. Blokuj/ograniczaj:
    • puste i podejrzane User-Agenty,
    • żądania bez referera i bez cookies na głębokie podstrony,
    • wrogie ścieżki (np. enumeracja /product?id=… co milisekundy),
    • nadmierne tempo z jednego IP/ASN.
  • Rate limiting i „burst control”: np. 30–60 żądań/min/IP dla katalogu produktów, 10/min dla endpointów wyszukiwania i filtrów. Dla /checkout i /api/payment — jeszcze ostrzej z banem czasowym.
  • Blokady geograficzne i ASN: jeśli nie sprzedajesz globalnie, ogranicz ryzykowne regiony i niektóre data center. Stosuj allowlisty dla B2B.
  • JavaScript/JS challenge: lekkie wyzwanie, które prawdziwy użytkownik „zaliczy” automatycznie, a prymitywny scraper polegnie.
  • CAPTCHA/Turnstile/hCaptcha na newralgiczne akcje: logowanie, dodawanie do koszyka „hurtowo”, wyszukiwarka, formularze. Używaj adaptacyjnie — tylko przy podwyższonym ryzyku.
  • Twarde nagłówki i polityki: wymuś cookies i podstawowe nagłówki przeglądarkowe, odfiltrujesz proste skrypty HTTP.

Rozwiązania gotowe vs. własne reguły

Nie wymyślaj koła na nowo, ale miej kontrolę nad kierownicą

  • Zarządzane platformy (Cloudflare Bot Management, PerimeterX/Human, Akamai Bot Manager): szybki efekt, dobre sygnatury, ciągłe aktualizacje.
  • Własny stack: Nginx/Apache + ModSecurity, Fail2ban, crowdsec, własne listy IP/ASN i heurystyki. Tańsze, ale wymagają utrzymania.
  • Hybryda: gotowe narzędzia na froncie, własne reguły dla specyficznych ścieżek i API. Najczęściej najlepszy koszt/efekt.

Ochrona krytycznych stref: wyszukiwarka, koszyk, checkout

Tam bot boli najbardziej — wzmocnij te drzwi podwójnie

  • Wyszukiwarka i filtracja: limity zapytań i poziomy trudności (JS challenge po X zapytaniach/min). Cache’uj popularne zapytania.
  • Koszyk i dodawanie do koszyka: weryfikacja referera, tokeny anty-CSRF, throttling na add-to-cart, blokada „hurtowych” dodawań z jednego IP.
  • Checkout i płatności: reguły anty-carding (limity prób płatności, velocity checks, blokada pre-paid/hosting ASN), 3DSecure, dynamiczna CAPTCHA przy podejrzeniu.
  • API: podpisy żądań, ograniczenia per klucz, oddzielna domena dla publicznego API z dedykowanym WAF.

Minimalizowanie fałszywych alarmów

Blokuj mądrze, nie wszystko naraz

  • Zaczynaj od trybu „log only/monitor” i oceniaj wpływ.
  • Wprowadzaj reguły etapami i mierz zmianę: liczba 429, średnie TTFB, konwersja, porzucone koszyki.
  • Buduj whitelisty dla partnerów, botów wyszukiwarek i wewnętrznych narzędzi.
  • Dla akcji wysokiego ryzyka stosuj „soft deny”: spowolnienie, JS challenge, a nie od razu twardy ban.

Metryki i dashboard, które naprawdę pomagają

Widzisz — więc reagujesz szybciej

  • Żądania/min na ścieżkę i IP, rozkład po User-Agent.
  • Udział żądań bez CSS/JS vs. z pełnym renderowaniem.
  • Error rate (4xx/5xx), peak’i 404/429.
  • Udział ruchu z ASN data center vs. residential.
  • Konwersja i TTFB po wdrożeniu reguł (czy UX nie cierpi).
  • Liczba unikalnych IP i powracalność wzorców w godzinach nocnych.

Ustaw alerty: „>X żądań do /search w 5 minut z jednego IP”, „skok 404 o >200% w 10 minut”, „wzrost HeadlessChrome o >50%”.

Plan wdrożenia krok po kroku

Realny harmonogram na 30 dni

  • 0–3 dni: włącz WAF w trybie obserwacji, zbierz top ścieżki i User-Agent. Dodaj honeypot link w stopce lub na stronie wyników wyszukiwania.
  • 4–7 dni: wprowadź rate limiting dla /search, /filter, /product, „miękkie” JS challenge przy pikach. Whitelistuj Google/Bing po reverse DNS.
  • 8–14 dni: zaostrzenia dla /cart i /checkout (CAPTCHA adaptacyjna, limity płatności, CSRF). Zablokuj puste UA i znane biblioteki.
  • 15–30 dni: segmentacja ruchu po ASN, reguły dla API, automatyczne bany czasowe (np. 1–24 h) po naruszeniach. Zbuduj dashboard i alerty.

Aspekty prawne, SEO i doświadczenie użytkownika

Bezpieczeństwo nie może zjeść sprzedaży

  • SEO: nie blokuj crawlerów wyszukiwarek. Weryfikuj reverse DNS zamiast ufać samemu User-Agent. robots.txt traktuj jako sygnał, nie barierę.
  • RODO/GPDR: loguj niezbędne dane (IP, UA) i trzymaj politykę retencji. Informuj o mechanizmach bezpieczeństwa w polityce prywatności.
  • UX: stosuj adaptacyjne CAPTCHy i lekkie JS challenge wyłącznie dla podejrzanych. Prawdziwy klient nie powinien zauważyć ochrony.

Najczęstsze błędy i jak ich uniknąć

To, co zwykle podkłada nogę zespołom e‑commerce

  • Zbyt agresywne, globalne blokady — uderzają w SEO i partnerów.
  • Poleganie wyłącznie na User-Agent — łatwy do podszycia.
  • Brak monitoringu po wdrożeniu — nie wiesz, co właśnie zepsułeś.
  • Ignorowanie API i wyszukiwarki — to ulubione cele botów.
  • Jednorazowe „ustaw i zapomnij” — boty ewoluują, Twoje reguły też muszą.

Podsumowanie i następne kroki

Zbuduj tarczę warstwową i mierz efekty co tydzień

Skuteczna ochrona przed automatycznym skanowaniem to warstwowa układanka: rozpoznanie wzorców (logi, honeypoty, behawior), precyzyjne narzędzia (WAF, rate limiting, wyzwania JS/CAPTCHA) oraz ciągłe strojenie na podstawie danych. Zacznij od szybkich wygranych — blokada pustych i podejrzanych User-Agentów, limit zapytań do wyszukiwarki, weryfikacja botów wyszukiwarek — a następnie przejdź do ochrony krytycznych stref jak koszyk i checkout.

Najważniejsze: chronisz nie tylko serwer, ale przede wszystkim konwersję i marżę. Dobrze ustawione reguły odciążą infrastrukturę, ograniczą scraping cen i utrudnią carding, a klient końcowy nawet nie poczuje, że po drugiej stronie toczy się niewidoczna walka.

Kacper Jedynak

Zostaw swój numer - oddzwonię

Cześć! Zadzwoń +48 572 651 439 lub napisz lub zostaw numer telefonu, a oddzwonię w ciągu 1h i porozmawiamy o ofercie.

Picture of Łukasz Janeczko

Łukasz Janeczko

Programista - DropDigital.pl