Total Security Suite - zapora, captcha, 2FA i skaner. Total Security łączy w jednym module zaporę aplikacji internetowej, captchę dla formularzy sklepu, uwierzytelnianie dwuskładnikowe (2FA) dla panelu administracyjnego i klientów, lokalny skaner złośliwego kodu i webshelli oraz bieżącą ocenę bezpieczeństwa, która wskazuje, co warto poprawić. Wszystko działa na Państwa własnym serwerze: nic nie opuszcza sklepu. Bez programowania, bez zmian w motywie.
Total Security łączy w jednym module zaporę aplikacji internetowej, captchę dla formularzy sklepu, uwierzytelnianie dwuskładnikowe (2FA) dla panelu administracyjnego i klientów, lokalny skaner złośliwego kodu i webshelli oraz bieżącą ocenę bezpieczeństwa, która wskazuje, co warto poprawić. Wszystko działa na Państwa własnym serwerze: nic nie opuszcza sklepu. Bez programowania, bez zmian w motywie.
1. Instalacja
- W panelu administracyjnym (back office) należy przejść do Modules → Module Manager → Upload a module i wybrać plik ZIP modułu.
- Po zainstalowaniu należy kliknąć Configure. Otworzy się krótki panel z przyciskiem Go to configuration, który prowadzi do pełnej strony.

.local, .test, localhost) są zawsze dozwolone. Gdy dostępna jest nowa wersja, informacja o niej wyświetla się 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 miejscu. Jak zaktualizować moduł i co zrobić, gdy pojawia się komunikat „Upload failed”.
2. Konfiguracja: karty
Strona modułu jest podzielona na karty u góry: Dashboard, Firewall rules, Blocked log, Login protection, Captcha, Two-factor auth, Malware scanner i Settings.
Dashboard security score
Bieżąca ocena bezpieczeństwa (Security score) z oceną literową (A/B/C/D), obliczana na podstawie ustawień sklepu, warstw zapory, captchy i 2FA oraz ostatniego skanowania pod kątem złośliwego kodu (nic nie opuszcza serwera). Poniżej znajduje się Checklist kontroli bezpieczeństwa (widoczne przykłady: tryb debugowania wyłączony na produkcji, HTTPS wymuszony wszędzie, aktywna zapora aplikacji internetowej, captcha przy logowaniu i rejestracji, uwierzytelnianie dwuskładnikowe w panelu administracyjnym, brak wykrytego złośliwego kodu i webshelli, nazwa folderu panelu administracyjnego trudna do odgadnięcia, włączony token bezpieczeństwa panelu administracyjnego). Pozycje wymagające uwagi mają skrót Fix now, który przenosi bezpośrednio do odpowiedniego ustawienia.

Firewall rules
Listy reguł dodaje się i zarządza nimi za pomocą jednego formularza Add a rule: Whitelist IP/CIDR (zaufane, pomija wszystko), Blacklist IP/CIDR (zablokowane), Country rules (kody ISO-2), Bad user-agents (dopasowanie podciągu), Custom attack patterns (dopasowanie podciągu) oraz Pattern whitelist (/module/designer/save oznacza adres strony, z * na końcu dla adresów poniżej niego; ?fc=module&module=designer&controller=save lub ?controller=search oznacza stronę niezależnie od jej adresu; każdy inny tekst oznacza całą wartość. Wpis nigdy nie pasuje do części wartości: wartość, która go tylko zawiera, jest nadal sprawdzana). Baner pokazuje Państwa bieżący adres IP i ostrzega, aby dodać go do białej listy przed włączeniem trybu blokady (lockdown) lub dostępu do panelu administracyjnego tylko z białej listy, tak aby nigdy nie zablokować samego siebie.

Blocked log
Każde zablokowane żądanie jest rejestrowane z datą, adresem IP, krajem, powodem (np. user_agent, attack_pattern, ip, rate, login), szczegółami, żądanym URI i user-agentem. Można filtrować według powodu lub adresu IP, użyć Export CSV, Clear log albo odblokować adres IP bezpośrednio stąd.

Login protection
Śledzi próby logowania do panelu administracyjnego i blokuje konto lub adres IP po zbyt wielu nieudanych próbach w określonym oknie czasowym; wpis można odblokować ręcznie. Nieudane próby są liczone w PrestaShop 1.7, 8 i 9, a zablokowany adres jest odrzucany jeszcze przed sprawdzeniem hasła, również w PrestaShop 9. Progi konfiguruje się w Settings (Back-office login protection). Logowanie klientów podczas składania zamówienia (checkout) także ma limit nieudanych prób na adres IP (dwukrotność progu panelu administracyjnego, w tym samym oknie czasowym): po jego przekroczeniu klient wraca do zamówienia z komunikatem, że należy odczekać kilka minut.

Captcha
- Captcha provider: do wyboru Google reCAPTCHA v2 (pole wyboru), reCAPTCHA v3, hCaptcha, Cloudflare Turnstile lub dostawca Lightweight, który nie wymaga kluczy i zachowuje wszystko na Państwa serwerze.
- Site key / Secret key: z panelu wybranego dostawcy, reCAPTCHA v3 score threshold, widget theme, badge position, lightweight token lifetime.
- Protected forms: Login, Registration, Forgot password, Contact form, Newsletter, Product review, Guest checkout (każdy z możliwością włączenia i wyłączenia).
- Advanced: Fail closed (blokada, gdy dostawca jest nieosiągalny), Skip captcha for logged-in customers, Verification timeout, Trusted IP whitelist, verify hostname, verify action.
- Rate limiting: ogranicza liczbę nieudanych prób captchy, z maksimum i oknem czasowym.

Two-factor auth (2FA)
Jednorazowe kody oparte na czasie (Google Authenticator, Authy, 1Password i dowolna zgodna aplikacja). Nic nie opuszcza serwera: sekrety są szyfrowane w spoczynku i weryfikowane lokalnie.
- Your account: konfiguracja 2FA dla konta, na którym jest się zalogowanym (zeskanowanie kodu QR, wpisanie 6-cyfrowego kodu).
- Enable 2FA for the back office (pracownicy) i/lub for customers (sklep).
- Force 2FA for specific employee profiles, według identyfikatora (1 = SuperAdmin, 2 = Logistician, 3 = Translator, 4 = Salesman); wymienione profile nie mogą korzystać z panelu administracyjnego, dopóki się nie zarejestrują.
- Tolerance window, number of backup codes, issuer name wyświetlana w aplikacji.
- Enrolled employees i enrolled customers są wyświetlani na liście i można ich zresetować.

Malware scanner
Lokalne skanowanie pod kątem złośliwego kodu i webshelli: wyszukuje znane sygnatury webshelli i zaciemniania kodu, kod wykonywalny ukryty w folderach z mediami oraz pliki dodane lub zmienione od momentu zaufanego punktu odniesienia. Wszystko działa na serwerze: żaden plik, skrót ani ścieżka nigdy nie opuszcza sklepu.
- Metrics: podejrzane pliki, pliki w punkcie odniesienia, ostatnie skanowanie.
- Run scan now i Set current files as trusted baseline.
- Wyniki są wyświetlane z podaniem severity (ważności), what (czego dotyczą), file (pliku) i when (kiedy).

Settings firewall configuration
Własna konfiguracja zapory, pogrupowana według sekcji.
- General: Enable firewall; Behind a proxy/CDN z zaufanym nagłówkiem proxy i zaufanymi adresami IP/CIDR proxy; tę opcję należy włączać tylko za prawdziwym zaufanym proxy, w przeciwnym razie nagłówki IP i kraju można sfałszować.
- IP/CIDR blocking.
- Country blocking: tryb listy blokowanych lub dozwolonych, kody ISO-2, opcjonalna ścieżka do bazy MaxMind GeoLite2 lub nagłówek kraju CDN; bazy nigdy nie dołączamy do modułu ze względów licencyjnych.
- Bad bots / user-agents: włączenie blokowania UA, blokowanie pustego UA, dodatkowe blokowane podciągi łączone z wbudowaną listą.
- Rate limiting: maksymalna liczba żądań w oknie, długość okna w sekundach, czas trwania blokady tymczasowej.
- Attack-pattern blocking: SQLi/XSS/LFI/sondowanie. Sprawdzane jest każde pole wysłanego formularza; przesłanie większe niż 2 MB, zagnieżdżone głębiej niż 32 poziomy lub takie, którego nie da się odczytać do końca, jest odrzucane (powody w logu
inspection_limitiinspection_error). Prawdziwy checkout pozostaje daleko poniżej tych limitów; jeśli któryś z modułów w Państwa sklepie zgodnie z przeznaczeniem wysyła większe dane, należy dodać ścieżkę jego adresu (na przykład/module/designer/save) do Pattern whitelist. - Back-office login protection: maksymalna liczba nieudanych prób, okno prób, czas trwania blokady, dostęp do panelu administracyjnego tylko z adresów IP z białej listy.
- Maintenance & logging: Lockdown mode (dostęp tylko z adresów IP z białej listy), rejestrowanie zablokowanych żądań, liczba dni przechowywania logów, usunięcie wszystkich danych przy odinstalowaniu.
- Weekly security report: wysyła e-mailem krótki raport; działa w tle, małymi krokami, więc nigdy nie spowalnia sklepu.

W sklepie
Gdy zapora blokuje żądanie, odwiedzający otrzymuje zwykłą stronę 403 z komunikatem „Forbidden, your request has been blocked by the site firewall”: boty i skanery nigdy nie docierają do sklepu.

3. Sprawdzenie działania
- Należy otworzyć Dashboard i przeczytać ocenę bezpieczeństwa oraz listę kontrolną.
- Należy wysłać żądanie z user-agentem typowym dla skanera (lub z adresem URL do sondowania) i potwierdzić, że pojawia się strona blokady 403 oraz nowy wiersz w Blocked log.
- Po kilku nieudanych logowaniach do panelu administracyjnego konto lub adres IP zostaje zablokowane w Login protection.
- Należy włączyć captchę i potwierdzić, że pojawia się w formularzu logowania i rejestracji.
- Należy skonfigurować 2FA na swoim koncie i zalogować się ponownie przy użyciu 6-cyfrowego kodu.
- Należy uruchomić Malware scanner i przeczytać wyniki.
4. FAQ
Czy spowalnia sklep?
Nie: zapora działa jako pierwsza, z tanimi, indeksowanymi wyszukiwaniami; skaner i cotygodniowy raport działają w tle.
Czy mnie zablokuje?
Najpierw należy dodać swój bieżący adres IP do białej listy (strona o tym ostrzega; podczas instalacji moduł dodaje do białej listy tylko publiczny adres administratora, nigdy adresy lokalne, takie jak 127.0.0.1/::1, ani adresy proxy); tryb blokady (lockdown) lub dostęp do panelu administracyjnego tylko z białej listy należy włączać dopiero potem. Jeśli moduł widzi połączenie z adresu lokalnego lub prywatnego (na przykład 127.0.0.1), panel administracyjny wyświetla ostrzeżenie: za serwerem proxy, load balancerem lub CDN wszyscy odwiedzający mają prawdopodobnie ten sam adres. Należy wtedy włączyć opcję Behind a proxy/CDN w Settings (i dodać adres proxy do zaufanych serwerów proxy, jeśli nie jest to 127.0.0.1).
modules/cll_totalsecurity, zaraz potem należy wyczyścić pamięć podręczną PrestaShop: opróżnić folder var/cache/prod lub uruchomić php bin/console cache:clear --env=prod jako użytkownik serwera WWW. Dopóki pamięć podręczna nie zostanie wyczyszczona, panel administracyjny odpowiada błędem 500; sklep nadal działa. Wyłączenie lub odinstalowanie modułu w Module Manager nie powoduje tego problemu.Czy jakiekolwiek dane opuszczają mój serwer?
Nie: zapora, opcja captchy Lightweight, sekrety 2FA i skaner złośliwego kodu działają lokalnie na Państwa serwerze.
Czy zastępuje osobne moduły zapory, captchy i 2FA?
Tak: to jeden, ujednolicony pakiet bezpieczeństwa.
Czy muszę edytować motyw?
Nie: działa przez standardowe hooki i jest zgodny z każdym motywem.
