Blokowanie IP & krajów, kontrola odwiedzających: konfiguracja i pomoc
Szybki start
- Prześlij i zainstaluj plik ZIP modułu mprvisitorcontrol przez Menedżer modułów.
- Kliknij Konfiguruj, aby otworzyć General Settings, sprawdź opcje i zapisz.
- Otwórz IP Whitelist i zapisz zaufany adres IP do testów lub adres biura w polu IP Address, dodając Label.
- Zaloguj się na testowe konto klienta w sklepie, pozostaw stronę otwartą na czas zbierania danych, a następnie sprawdź tego klienta w panelu administracyjnym.
- 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.
- Z pasującego adresu testowego otwórz stronę objętą regułą i potwierdź odpowiedź 403 oraz wyświetlenie zamierzonego komunikatu.
- 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?
Znane problemy
6
Reguły blokowania pojedynczych adresów
Zapisz i zostań
Wzmocnienie zabezpieczeń
Zgodność z PHP 7.1
Egzekwowanie listy blokad sprzedawcy
Routing stron blokowania odwiedzających
Zgłoszenia funkcji
3
Zaimplementowane
Blokowanie zakresów IPv4 w notacji CIDR
Aktualizacje modułu jednym kliknięciem
Koordynacja 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.
Pobierając, akceptujesz warunki dema i politykę prywatności.
Otwierając to demo, akceptujesz regulamin wersji demo oraz politykę prywatności.