Zapora aplikacji internetowej (Web Application Firewall). Moduł Web Application Firewall blokuje niepożądane adresy IP, zakresy CIDR, całe kraje i złe boty, ogranicza liczbę żądań agresywnych klientów, chroni logowanie do panelu administracyjnego przed atakami brute force i zatrzymuje typowe wzorce ataków (SQLi / XSS / LFI / sondowanie). Zaufana lista dozwolonych z ochroną przed zablokowaniem własnego dostępu zapewnia bezpieczeństwo, a każde zablokowane żądanie jest rejestrowane. Bez kodowania i bez zmian w szablonie.

Moduł Web Application Firewall blokuje niepożądane adresy IP, zakresy CIDR, całe kraje i złe boty, ogranicza liczbę żądań agresywnych klientów, chroni logowanie do panelu administracyjnego przed atakami brute force i zatrzymuje typowe wzorce ataków (SQLi / XSS / LFI / sondowanie). Zaufana lista dozwolonych z ochroną przed zablokowaniem własnego dostępu zapewnia bezpieczeństwo, a każde zablokowane żądanie jest rejestrowane. Bez kodowania i bez zmian w szablonie.

1. Instalacja

  1. W panelu administracyjnym (back office) należy przejść do Modules → Module Manager → Upload a module i wybrać plik ZIP modułu.
  2. Po zainstalowaniu należy kliknąć Configure, aby otworzyć kreator konfiguracji.
Aktualizacje są automatyczne. Aktualizacje są w cenie. Domeny developerskie (.local, .test, localhost) są zawsze dozwolone. Gdy dostępna jest nowa wersja, widać to bezpośrednio w module.

Jeśli zamiast potwierdzenia pojawi się komunikat „Upload failed”, PrestaShop mógł wyłączyć moduł bez powiadomienia: ustawienia i dane pozostają na swoim miejscu. Jak zaktualizować moduł i co zrobić, gdy pojawi się komunikat „Upload failed”.

2. Konfiguracja krok po kroku

Moduł jest podzielony na zakładki: Rules & whitelist, Blocked log, Login protection i Settings. Poniższe sekcje odpowiadają zakładce Settings, w której każda ochrona ma własny przełącznik.

General główny przełącznik

Przełącznik włącz/wyłącz dla całej zapory oraz sposób odczytu adresu IP klienta.

  • Enable firewall: główny przełącznik. Wyłączony oznacza, że nic nie jest filtrowane w sklepie.
  • Behind a proxy / CDN: należy włączyć tylko wtedy, gdy sklep rzeczywiście znajduje się za zaufanym proxy lub CDN. W przeciwnym razie nagłówki proxy można podrobić i atakujący mógłby sfałszować swój adres IP lub kraj.
  • Trusted proxy header: który nagłówek zawiera rzeczywisty adres IP klienta: Auto (Cloudflare → X-Real-IP → X-Forwarded-For), CF-Connecting-IP, X-Real-IP lub X-Forwarded-For.
Ustawienia ogólne
General: główny przełącznik i wykrywanie proxy/IP

IP / CIDR blocking

Blokowanie pojedynczych adresów IP lub całych zakresów CIDR.

  • Enable IP / CIDR blacklist: włącza blokowanie IP i zakresów.
  • Właściwe wpisy czarnej i białej listy obsługuje się w zakładce Rules & whitelist. Adres IP lub CIDR z białej listy omija wszystkie pozostałe kontrole.
Blokowanie IP / CIDR
IP / CIDR blocking: obsługiwane razem z białą listą

Country blocking

Zezwalanie odwiedzającym lub ich blokowanie według kraju (kody ISO-2).

  • Enable country blocking: włącza filtr geograficzny.
  • Mode: Block-list (blokuje wymienione kraje) lub Allow-list (dopuszcza tylko wymienione kraje).
  • Country codes: kody ISO-2 oddzielone przecinkami, np. RU, CN, KP.
  • GeoIP database path: opcjonalna ścieżka do własnego pliku MaxMind GeoLite2 .mmdb. Baza GeoIP nie jest dołączona (ograniczenia licencyjne); należy dostarczyć własną albo polegać na nagłówku kraju z CDN (np. CF-IPCountry), włączając „behind proxy/CDN”.
Blokowanie krajów
Country blocking: lista blokowanych lub dozwolonych według kodu ISO-2

Bad bots / user-agents

Blokowanie znanych scraperów, skanerów i podejrzanych klientów według ich User-Agent.

  • Enable user-agent blocking: włącza filtrowanie UA.
  • Block empty user-agents: odrzuca żądania, które w ogóle nie wysyłają User-Agent.
  • Extra blocked user-agent substrings: jeden fragment w wierszu; łączony z rozsądną wbudowaną listą znanych scraperów i skanerów.
Złe boty / user-agents
Bad bots / user-agents: lista wbudowana oraz własne fragmenty

Rate limiting

Ograniczanie klientów, którzy wysyłają zbyt wiele żądań w krótkim czasie.

  • Enable rate limiting: włącza ogranicznik.
  • Max requests per window: ile żądań może wysłać adres IP, zanim zostanie ograniczony.
  • Window (seconds): okno przesuwne, w którym liczone są żądania.
  • Temporary block duration (seconds): jak długo naruszający adres IP pozostaje zablokowany.
Ograniczanie liczby żądań
Rate limiting: żądania, okno i czas blokady

Attack-pattern blocking

Wykrywanie i blokowanie typowych sygnatur ataków w żądaniach.

  • Enable attack-pattern blocking: blokuje wzorce SQLi, XSS, LFI i sondowania.
  • Własne wzorce można dodać, a prawidłowe adresy URL, które w przeciwnym razie zostałyby dopasowane, dodać do białej listy w zakładce Rules & whitelist.
Blokowanie wzorców ataków
Attack-pattern blocking: SQLi / XSS / LFI / sondowanie

Back-office login protection

Ochrona logowania do panelu administracyjnego przed próbami brute force.

  • Enable login protection: śledzi nieudane logowania do panelu administracyjnego według adresu IP i nazwy użytkownika.
  • Max failed attempts, Attempt window (seconds) i Lockout duration (seconds): po zbyt wielu niepowodzeniach w oknie źródło zostaje tymczasowo zablokowane.
  • Allow back office only from whitelisted IPs: ogranicza dostęp do panelu administracyjnego do adresów IP z białej listy. Najpierw należy upewnić się, że bieżący adres IP znajduje się na białej liście (strona pokazuje adres IP i ostrzega, jeśli go tam nie ma).
Ochrona logowania do panelu administracyjnego
Back-office login protection: ograniczanie prób brute force i ograniczenie IP

Maintenance & logging

Tryb blokady awaryjnej i dziennik zablokowanych żądań.

  • Lockdown mode: dopuszcza dostęp do sklepu tylko adresom IP z białej listy (blokada awaryjna). Najpierw należy dodać własny adres IP do białej listy.
  • Log blocked requests: rejestruje każde zablokowane żądanie (można je przeglądać i eksportować w zakładce Blocked log).
  • Log retention (days): jak długo wiersze dziennika są przechowywane.
  • Drop all data on uninstall: po włączeniu usunięcie modułu usuwa również jego reguły i dzienniki.
Konserwacja i dziennik
Maintenance & logging: blokada awaryjna, dziennik i okres przechowywania

3. Sprawdzenie działania

  • W zakładce Rules & whitelist baner pokazuje bieżący adres IP i informację, czy znajduje się na białej liście; należy go dodać przed włączeniem blokady awaryjnej lub opcji BO-whitelist-only.
  • Należy dodać testowy fragment złego user-agenta, a następnie zażądać strony z tym User-Agent: powinna zostać zablokowana i pojawić się w Blocked log.
  • Należy otworzyć zakładkę Blocked log: zablokowane żądania pojawiają się z adresem IP, krajem, przyczyną i URI; można je filtrować, eksportować do CSV lub wyczyścić dziennik.
  • Zakładka Login protection wyświetla nieudane logowania do panelu administracyjnego i pozwala zdjąć blokadę jednym kliknięciem.

4. FAQ

Czy można zablokować samego siebie?

Zakładka Rules zawsze pokazuje bieżący adres IP i ostrzega, jeśli nie znajduje się na białej liście. Po dodaniu go do białej listy przed włączeniem blokady awaryjnej lub BO-whitelist-only nie ma możliwości zablokowania własnego dostępu.

Czy blokowanie krajów wymaga zewnętrznej usługi?

Nie. Odczytuje nagłówek kraju z CDN, gdy sklep znajduje się za proxy/CDN, lub korzysta z własnej bazy MaxMind GeoLite2. Dane GeoIP nie są dołączone, a z serwera nie wychodzą żadne wywołania.

Czy moduł spowalnia sklep?

Nie. Kontrole są lekkie i wykonywane na wczesnym etapie żądania; prawidłowi odwiedzający nie odczuwają żadnych skutków.

Czy trzeba edytować szablon?

Nie. Zapora działa przez standardowe hooki i jest zgodna z dowolnym szablonem.

Ładowanie...
Powrót do góry