Blokowanie IP & krajów, kontrola odwiedzających: konfiguracja i pomoc

Szybki start

  1. Prześlij i zainstaluj plik ZIP modułu mprvisitorcontrol przez Menedżer modułów.
  2. Kliknij Konfiguruj, aby otworzyć General Settings, sprawdź opcje i zapisz.
  3. Otwórz IP Whitelist i zapisz zaufany adres IP do testów lub adres biura w polu IP Address, dodając Label.
  4. Zaloguj się na testowe konto klienta w sklepie, pozostaw stronę otwartą na czas zbierania danych, a następnie sprawdź tego klienta w panelu administracyjnym.
  5. Otwórz Visitor Bans i dodaj regułę dla osobnego adresu testowego. Ustaw Ban Type i Active oraz datę wygaśnięcia reguły testowej w polu Expiry Date.
  6. Z pasującego adresu testowego otwórz stronę objętą regułą i potwierdź odpowiedź 403 oraz wyświetlenie zamierzonego komunikatu.
  7. Dezaktywuj regułę testową i potwierdź przywrócenie dostępu. Jeśli chcesz zatrzymać całe zbieranie danych i blokowanie, wyłącz moduł w Menedżerze modułów.

Wymaga PrestaShop 1.6.1 lub nowszego oraz PHP 7.1 lub nowszego.

Instrukcja konfiguracji

Instalacja i pierwsza konfiguracja

Wykonaj kroki opisane w sekcji Szybki start.

Sprawdzenie ustawień przed użyciem

Po instalacji modułu zbieranie danych, śledzenie gości, blokowanie odwiedzających i panele przy zamówieniach są włączone. Początkowy okres przechowywania wynosi 90 dni. Działanie Konfiguruj otwiera General Settings.

Zapisanie General Settings stosuje ustawienia zbierania danych, śledzenia gości, blokowania, paneli przy zamówieniach i przechowywania. Default Ban Message jest zapisywany dla każdego języka i używany, gdy pasująca reguła nie ma własnego komunikatu.

Ustaw Enable Data Collection lub Enable Visitor Banning na Nie i zapisz, aby zatrzymać odpowiednią funkcję. Wyłącz moduł w Menedżerze modułów, aby zatrzymać obie. Poszczególnymi wpisami blokad i białej listy zarządzaj na przeznaczonych do tego ekranach.

Etykieta w formularzu Wartość po instalacji Obecne działanie
Enable Data Collection Tak Zbierane są żądania przeglądarki oraz informacje o logowaniu i tworzeniu kont. Ustaw Nie i zapisz, aby zatrzymać zbieranie danych.
Track Guest Visitors Tak Uwzględniani są niezalogowani odwiedzający wraz z identyfikatorem gościa, jeśli jest dostępny. Ustaw Nie i zapisz, aby zbierać dane wyłącznie zalogowanych klientów.
Enable Visitor Banning Tak Aktywne reguły blokowania są egzekwowane przed załadowaniem stron sklepu. Ustaw Nie i zapisz, aby zatrzymać blokowanie.
Show Info on Orders Tak Panel danych odwiedzin klienta pojawia się na obsługiwanych stronach zamówień w panelu administracyjnym. Ustaw Nie i zapisz, aby ukryć ten panel.
Log Retention (days) 90 Automatycznie usuwa rekordy starsze niż zapisana liczba dni. Wpisz nieujemną liczbę całkowitą; 0 oznacza przechowywanie rekordów bezterminowo.
Default Ban Message Angielski komunikat ograniczenia dostępu ustawiony dla każdego języka Zapisuje komunikat zastępczy dla każdego języka. Własny komunikat pasującej reguły ma pierwszeństwo.

Angielski komunikat ustawiony podczas instalacji brzmi:

Your access to this website has been restricted. If you believe this is an error, please contact the store administrator.

Śledzenie systemu operacyjnego, przeglądarki, ekranu i surowego ciągu user-agent jest włączone podczas instalacji. Główny formularz dla sprzedawcy nie zawiera osobnych ustawień tych funkcji. Każdy zebrany rekord zawiera adres IP.

Dodawanie zaufanych adresów

Otwórz IP Whitelist. Wpisz IP Address lub CIDR Range oraz Label, a następnie zapisz. Przykładowe wpisy:

IP Address: 203.0.113.10
Label: Office IP
CIDR Range: 198.51.100.0/24
Label: Agency VPN

Zastąp te adresy dokumentacyjne rzeczywistymi zaufanymi adresami. Dopasowanie do białej listy jest sprawdzane przed każdą kontrolą blokady. Adres z białej listy omija również blokady według kraju, user-agenta i klienta. Unikaj zakresów szerszych niż te, które zamierzasz dopuścić. Wpisy są sprawdzane dla bieżącego sklepu lub wszystkich sklepów, zależnie od ich zakresu.

Tworzenie reguł blokowania i zarządzanie nimi

Otwórz Visitor Bans i dodaj Ban Rule. Uzupełnij co najmniej jedno pole wskazujące cel blokady. Aby uzyskać przewidywalny test, używaj jednego celu na regułę: wiele pól celu oznacza alternatywne dopasowania, a nie wymóg spełnienia wszystkich warunków.

Pole Domyślna wartość nowej reguły Sposób użycia
IP Address Puste, chyba że wstępnie uzupełnione Wpisz dokładny adres IP, wzorzec IPv4 z symbolem wieloznacznym, np. 192.168.1.*, lub zakres z łącznikiem, np. 192.168.1.1-192.168.1.255.
CIDR Range Puste Wpisz podsieć IPv4, np. 192.168.1.0/24. Nie uzupełniaj jednocześnie tego pola i IP Address.
Country Brak Wybierz kraj, aby dopasować go do wykrytego kodu kraju.
User Agent Pattern Puste Wpisz fragment tekstu dopasowywany bez rozróżniania wielkości liter lub wyrażenie regularne zaczynające się i kończące znakiem /.
Customer ID 0 Wpisz identyfikator zarejestrowanego klienta. Jest sprawdzany tylko wtedy, gdy ten klient jest zalogowany.
Ban Type Full Block - Entire Store Wybierz zakres opisany poniżej.
Reason Puste Notatka wewnętrzna; nie jest wyświetlana odwiedzającemu.
Custom Ban Message Puste Zastąp domyślny komunikat dla tej reguły. Szablon wyświetla tę treść jako HTML.
Active Tak Ustaw Nie, aby przestać egzekwować regułę.
Expiry Date Puste Pozostaw puste dla reguły bezterminowej lub wpisz datę wygaśnięcia. Wygasłe aktywne wpisy są dezaktywowane podczas wczytywania aktywnych blokad.

Dla wyrażeń regularnych user-agenta używaj /(curl|wget|python-requests)/. Mechanizm dopasowania rozpoznaje wyrażenie regularne tylko wtedy, gdy jego ostatnim znakiem jest /. Przykład kończący się na /i jest w tej wersji traktowany jako zwykły tekst. Dopasowanie zwykłego tekstu już nie rozróżnia wielkości liter. Odwiedzający może zmienić ciąg user-agent, więc nie potwierdza on tożsamości.

Wybór zakresu

Ban Type Zapisana wartość Objęte blokadą wartości controller w żądaniu
Full Block - Entire Store full Każde żądanie sklepu docierające do hooka egzekwującego blokadę
Checkout Only checkout order, orderopc, cart, supercheckout, onepagecheckout, checkout
Login/Authentication Only auth authentication, my-account, identity, registration, password

Blokowanie działa przez actionDispatcher dla natywnych kontrolerów sklepu; żądania do frontowych kontrolerów modułów są pomijane. Przy blokowaniu o ograniczonym zakresie moduł odczytuje wartość controller żądania. Przetestuj trasy składania zamówienia i konta, zwłaszcza jeśli używasz niestandardowych kontrolerów. Dopasowanie dla całego sklepu jest sprawdzane przed węższym zakresem. Zmiana IP, np. przez połączenie VPN, może ominąć regułę opartą wyłącznie na IP, jeśli nowy adres nie jest objęty regułą.

Przykłady

Aby przetestować blokadę całego sklepu, wpisz adres testowy w IP Address, pozostaw Ban Type jako Full Block - Entire Store, wpisz wewnętrzny Reason i ustaw nieodległą datę wygaśnięcia w polu Expiry Date.

Dla podsieci blokowanej tylko podczas składania zamówienia użyj CIDR Range 192.168.1.0/24 i Ban Type Checkout Only. Dla reguły dotyczącej zalogowanego konta wpisz Customer ID 123, a pozostałe pola celu pozostaw puste. Zastąp przykładowe wartości zamierzonymi danymi testowymi.

Aby ustawić komunikat dla konkretnej reguły, wpisz:

<p>Your access to checkout is temporarily restricted. Please contact support if you believe this is an error.</p>

Importowanie reguł CSV

Użyj CSV Import > Import ban rules from CSV nad listą blokad, wybierz plik CSV i kliknij Import. Znaczenie kolumn zależy od ich pozycji:

ip_address,ban_type,reason
192.168.1.1,full,Fraud attempt
192.168.1.0/24,checkout,Suspicious checkout traffic
203.0.113.10,auth,Fake account attempts

Pierwszy wiersz może zawierać nagłówek ip_address lub ip. Adresy zawierające ukośnik trafiają do pola CIDR. Importowane wpisy są aktywne, bezterminowe i przypisane do bieżącego kontekstu sklepu. Nieobsługiwany typ blokady zmienia się na full; pusty adres jest pomijany. Importer nie weryfikuje kompleksowo formatów adresów. Sprawdź utworzone wpisy zamiast traktować liczbę zaimportowanych wpisów jako udany test blokowania.

Zbieranie i przeglądanie danych odwiedzających

Mechanizm zbierania danych jest dodawany przez displayHeader. Gdy DOM jest gotowy, czeka około 1,5 sekundy, a następnie wysyła żądanie pod wygenerowany URL zbierania danych z parametrami sw i sh pobranymi z wymiarów ekranu przeglądarki. Przy przyjaznych adresach URL odnośnik może wyglądać tak:

/module/mprvisitorcontrol/collect?sw=1920&sh=1080

Przeglądarka używa klucza pamięci sesji mprvc_collected, aby nie powtarzać żądania w tej samej sesji. Gdy pamięć jest niedostępna, zbieranie danych może się powtarzać. Zakończone żądanie HTTP ustawia znacznik w sesji przeglądarki także wtedy, gdy odpowiedź JSON zgłasza stan wyłączenia lub błąd. Podczas testów sprawdzaj rzeczywistą odpowiedź.

Serwer zapisuje IP, kraj, user-agent, system operacyjny, przeglądarkę i jej wersję, wymiary ekranu, typ urządzenia, identyfikator klienta, identyfikator gościa, identyfikator sklepu oraz datę rekordu. Logowanie i tworzenie konta również zbierają dane przez actionAuthentication i actionCustomerAccountAdd.

Zbieranie danych nie tworzy nowego rekordu dla tego samego klienta lub gościa i IP, jeśli istnieje rekord z ostatniej godziny. Może zaktualizować rozdzielczość ekranu w tym niedawnym rekordzie. Dane nie stanowią pełnego rejestru odsłon, a Visits zlicza zapisane rekordy zamiast wszystkich odsłon.

Wykrywanie kraju korzysta najpierw z nagłówka Cloudflare HTTP_CF_IPCOUNTRY, następnie z PrestaShop GeoIP, a na końcu z pliku cookie kraju. Kraj może być pusty. Wykrywanie IP sprawdza poprawność REMOTE_ADDR i akceptuje nagłówki Cloudflare z adresem IP klienta tylko przy bezpośrednim połączeniu z serwera Cloudflare. W przypadku innych odwrotnych serwerów proxy skonfiguruj serwer WWW tak, aby przywracał adres klienta w REMOTE_ADDR.

Panele klienta i zamówienia

Moduł wyświetla panele przez displayAdminCustomers i displayAdminOrder. Panel pojawia się tylko wtedy, gdy klient ma zapisany rekord. Pokazuje ostatni adres IP, kraj, przeglądarkę, system operacyjny, rozdzielczość ekranu, jeśli jest dostępna, typ urządzenia i datę rekordu. Strona zamówienia pokazuje ostatni rekord odwiedzin klienta, który nie musi odzwierciedlać stanu z chwili utworzenia zamówienia.

Jeśli zapisano wiele adresów IP, IP History pokazuje kraj, liczbę rekordów, pierwsze i ostatnie wystąpienie oraz działanie szybkiej blokady. Ostrzeżenia dotyczą współdzielonych IP, więcej niż trzech krajów, więcej niż trzech typów urządzeń i więcej niż dziesięciu różnych IP. Traktuj je jako wskazówki, a nie automatyczne blokady. Panele klienta i zamówienia są powiązane z kontami; rekordy dotyczące wyłącznie gości nie tworzą panelu klienta.

Weryfikacja i rozwiązywanie problemów

Do testu blokady użyj osobnego adresu testowego. Potwierdź, że pasująca strona zwraca HTTP 403 i wyświetla Access Restricted z komunikatem reguły lub komunikatem zastępczym. Dla reguł o ograniczonym zakresie potwierdź, że nieobjęta nimi strona pozostaje dostępna, a dezaktywacja przywraca dostęp.

Jeśli nie pojawiają się dane odwiedzających, sprawdź, czy moduł jest włączony, hook zbierania danych i żądanie są obecne, a punkt końcowy zwraca {"status":"ok"}. Użyj nowej sesji przeglądarki, jeśli znacznik sesji już istnieje. Uwzględnij jednogodzinną deduplikację po stronie serwera. Bardzo krótka wizyta może zakończyć się, zanim uruchomi się zbieranie danych ekranu.

Przed testowaniem zbierania danych, blokowania lub przechowywania potwierdź zapisane wartości w General Settings. Jeśli blokada nie pasuje, sprawdź Active, termin wygaśnięcia, sklep, pierwszeństwo białej listy, rzeczywiste IP, kraj i user-agent oraz wybrany zakres. Zakresy CIDR i zakresy z łącznikiem obsługują IPv4. Adresy IPv6 można dopasowywać pojedynczo według ich dokładnego zapisu tekstowego.

Pierwsze żądanie do sklepu po 24 godzinach uruchamia usuwanie rekordów starszych niż aktywny okres przechowywania, jeśli okres ten jest dodatni. Do tego codziennego czyszczenia nie konfigurujesz systemowego zadania cron. Bez żądań czyszczenie czeka do następnej wizyty.

Wyłączanie lub odinstalowanie

Ustaw Enable Data Collection lub Enable Visitor Banning na Nie i zapisz, aby zatrzymać osobno zbieranie danych lub blokowanie. Wyłącz moduł w Menedżerze modułów, aby zatrzymać obie funkcje. Dla jednej reguły ustaw zamiast tego Active na Nie.

Użyj Odinstaluj w Menedżerze modułów, aby usunąć moduł. Odinstalowanie usuwa mprvc_info, mprvc_banned i mprvc_whitelist oraz współdzieloną konfigurację i wpisy menu tego modułu. Najpierw zachowaj kopię zapasową bazy danych, jeśli potrzebujesz historii odwiedzających, blokad lub danych białej listy.

Pytania

1

Czy Visitor Control czeka na baner zgody przed zbieraniem danych odwiedzających?

Nie. Zbiera adres IP, kraj, user-agent i informacje o urządzeniu bez sprawdzania banera zgody. Ustaw Enable Data Collection na Nie w General Settings i zapisz, aby zatrzymać zbieranie danych. Wyłącz moduł w Module Manager, aby zatrzymać całe zbieranie danych i blokowanie przez ten moduł.

Znane problemy

6

Reguły blokowania pojedynczych adresów

RozwiązaneZaktualizowano:
Naprawiono w: 1.0.15
Naprawiono błąd zapisywania reguły dla pojedynczego adresu IP, gdy zakres sieci pozostaje pusty.

Zapisz i zostań

RozwiązaneZaktualizowano:
Naprawiono w: 1.0.15
Naprawiono Save and stay, aby sprawdzało regułę i pozostawiało formularz otwarty po zapisaniu.

Wzmocnienie zabezpieczeń

RozwiązaneZaktualizowano:
Naprawiono w: 1.0.15
Wzmocnienie zabezpieczeń.

Zgodność z PHP 7.1

RozwiązaneZaktualizowano:
Naprawiono w: 1.0.11
Przywrócono ładowanie modułu w sklepach korzystających z PHP 7.1.

Egzekwowanie listy blokad sprzedawcy

RozwiązaneZaktualizowano:
Naprawiono w: 1.0.10
Naprawiono pomijanie blokad odwiedzających zdefiniowanych przez sprzedawcę, gdy aktywna jest inna integracja zapory.

Routing stron blokowania odwiedzających

RozwiązaneZaktualizowano:
Naprawiono w: 1.0.5
Naprawiono otwieranie stron kontroli odwiedzających w instalacjach rozróżniających wielkość liter.

Zgłoszenia funkcji

3

Zaimplementowane

Blokowanie zakresów IPv4 w notacji CIDR

Zaimplementowane
Blokuje całe zakresy IPv4 podane w notacji CIDR, bez dodawania każdego adresu osobno.

Aktualizacje modułu jednym kliknięciem

Zaimplementowane
Instaluj aktualizacje modułu bezpośrednio z panelu administracyjnego.

Koordynacja zapór sieciowych

Zaimplementowane
Koordynuj blokowanie odwiedzających z innymi obsługiwanymi integracjami zapór sieciowych.

Dziennik zmian

v1.0.52026-05-22

  • Addedcomplete FR/DE/ES/IT/PL translations
  • FixedCertify visitor control install integrity
Starsze wersje

v1.3.02026-04-20

  • Addedadmin menu management via MenuInstaller for streamlined module setup
  • AddedLicense management tab with key management and renewal options
  • Addedself-healing integrity checks for automatic diagnostics and repair
  • Addedcomplete FR/DE/ES/IT/PL translations
  • Improvedadmin list columns with visual badge indicators and multiselect filters

v1.2.02026-02-09

  • AddedPS 9 / Hummingbird theme compatibility
  • Addeduser-agent-based blocking with wildcard pattern support
  • Improvedvisitor intelligence panel with device-type and browser breakdown
  • Optimized IP-country lookup using MaxMind GeoLite2 binary database for sub-millisecond queries
  • Fixedcountry-block rule not applying to AJAX cart-add requests

v1.0.02025-08-12

  • Initialrelease: visitor intelligence and access control for PrestaShop
  • InitialReal-time visitor information: IP, device type, browser, country
  • InitialIP and country block rules with redirect or 403 response
  • InitialCompatible with PS 1.7.x and PS 8.x

v1.1.02025-05-12

  • Addedtemporary IP ban with expiry timer
  • Addedcountry allowlist mode — whitelist-only access control
  • Improveddevice detection accuracy for current iOS and Android user-agent strings

Demo

Przetestuj pełny moduł przed zakupem

Licencję kupisz później, a ustawienia zostaną.

  • Twoje 30-dniowe demo Przetestuj go we własnym sklepie przez 30 dni od pierwszej instalacji.
  • Gotowy sklep demo Poznaj gotowy sklep demo w przeglądarce.
  • Bez rejestracji Bez konta, adresu e-mail ani domeny sklepu.
Uruchom sklep demo

Pobierając, akceptujesz warunki dema i politykę prywatności.

Otwierając to demo, akceptujesz regulamin wersji demo oraz politykę prywatności.

Ładowanie...
Do góry