- Kod jednorazowy (TOTP)
- Logowanie, które nie przeszkadza zespołowi
- Profile obowiązkowe i okres przejściowy
- Moje uwierzytelnianie dwuskładnikowe i panel
- Dziennik bezpieczeństwa
- Dostęp awaryjny
- Licencja i informacje techniczne
- Ochrona kont krytycznych w tydzień
- Stałe stanowisko pracy
- Wspólne stanowisko lub wrażliwe połączenie
- Zgubiony telefon
- Do czego służy uwierzytelnianie dwuskładnikowe (2FA) w panelu administracyjnym?
- Jaki typ 2FA jest używany (SMS, e-mail, aplikacja)?
- Które aplikacje są kompatybilne (Google Authenticator, Authy, Microsoft...)?
- Czy można wymusić 2FA tylko dla wybranych profili (np. SuperAdmin)?
- Jak uniknąć spowalniania zespołu koniecznością wpisywania kodu przy każdym logowaniu?
- Co się stanie, jeśli pracownik zgubi telefon?
- Jakie metody awaryjnego odzyskiwania są dostępne?
- Czy moduł chroni przed atakami brute force?
- Czy dostępna jest historia logowań i zdarzeń bezpieczeństwa?
- Czy kontrola chroni także formularze i wywołania AJAX w panelu?
- Co dzieje się z 2FA, gdy licencja wygaśnie?
- Jakie wersje PrestaShop i PHP są obsługiwane i jak zaktualizować z wersji 1.0.0?
- Czy odinstalowanie usuwa dane?
- Czy można wyłączyć 2FA dla całego sklepu?
- Czy moduł zmienia motyw lub wygląd sklepu?
- Czy dane 2FA są chronione?
- Czy zaufane urządzenie jest bezpieczne?
- Kod nigdy nie jest akceptowany
- Nie mogę już otworzyć panelu
- Kod jest wymagany zbyt często
- Link „Moje uwierzytelnianie dwuskładnikowe” się nie pojawia
- Po instalacji z wiersza poleceń kontrola nie wydaje się działać
- Strona ustawień sygnalizuje skrypty do usunięcia
- Pracownik nie może już zatwierdzić kodu po migracji sklepu
Two-Factor Authentication (2FA) — 2FA dla panelu PrestaShop
Two-Factor Authentication (2FA) dodaje drugi krok do logowania do panelu administracyjnego PrestaShop: po wpisaniu hasła każdy pracownik podaje 6-cyfrowy kod z aplikacji uwierzytelniającej zainstalowanej na telefonie (TOTP). Przy skradzionym haśle żadna strona, żaden formularz i żadne wywołanie AJAX panelu nie wykona się bez tego kodu.
Moduł szuka równowagi między bezpieczeństwem a wygodą: zaufane urządzenie zapamiętane na 30 dni, zweryfikowana sesja przez 12 godzin, profile obowiązkowe z okresem przejściowym, panel i dziennik dla superadministratorów oraz kilka dróg powrotu na wypadek zgubienia telefonu.
Najważniejsze funkcje:
- Kody TOTP zgodne z Google Authenticator, Microsoft Authenticator, Authy, 1Password i Bitwarden
- Jeden kod na miesiąc i na przeglądarkę: zaufane urządzenie na 30 dni, niezależne od adresu IP (do ustawienia)
- Zweryfikowana sesja przez 12 godzin (do ustawienia), kończona po wylogowaniu
- 2FA obowiązkowe dla wybranych profili, z okresem przejściowym i komunikatem ostrzegawczym
- „Moje uwierzytelnianie dwuskładnikowe” dla każdego pracownika; panel, dziennik, reset i odblokowanie dla superadministratorów
- 10 kodów odzyskiwania na pracownika, reset przez administratora, plik
DISABLE_2FAi polecenie konsoli do dostępu awaryjnego - Blokada po błędnych kodach, zapisana w bazie danych
- Licencja nigdy nie wyłącza ochrony
- Interfejs po francusku, angielsku, hiszpańsku, włosku i polsku, bez overrides i zewnętrznych bibliotek PHP
Przegląd
Samo hasło nie wystarcza już do ochrony administracji sklepu internetowego: phishing, wycieki danych, hasła używane wielokrotnie lub udostępniane. A panel daje dostęp do cen, zamówień, plików klientów i tworzenia kont administratora.
Z Two-Factor Authentication (2FA):
- Pracownik wpisuje login i hasło jak zwykle.
- Samodzielna strona kodu, bez menu i linków panelu, prosi o 6-cyfrowy kod z jego aplikacji.
- Kod jest sprawdzany przed jakąkolwiek akcją w panelu. Jeśli pole Zapamiętaj to urządzenie jest zaznaczone, ta przeglądarka nie prosi o kod przez 30 dni; w przeciwnym razie weryfikacja obowiązuje 12 godzin.
Kontrola obejmuje strony, formularze (POST) oraz wywołania AJAX i JSON: przy samym haśle strona jest przekierowywana na stronę kodu, a wywołanie AJAX otrzymuje odpowiedź 401 bez danych. Znane ograniczenie w PrestaShop 1.7: trzy dawne samodzielne skrypty PrestaShop nie podlegają kontroli (zob. „Rozwiązywanie problemów”).
Funkcje
Kod jednorazowy (TOTP)
- Standard TOTP (RFC 6238): 6-cyfrowy kod odnawiany co 30 sekund, generowany offline przez aplikację
- Zgodność z Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden i każdą aplikacją TOTP
- Kod jest akceptowany tylko raz; zegar telefonu może być przesunięty o jeden okres 30 sekund
- Kod jest wysyłany po wpisaniu szóstej cyfry
- Sekrety zapisywane w formacie szyfrowanym i uwierzytelnianym; kody odzyskiwania przechowywane jako hasze
Logowanie, które nie przeszkadza zespołowi
- Zaufane urządzenie: jedno ciasteczko na pracownika i przeglądarkę (HttpOnly, SameSite=Lax), domyślnie ważne 30 dni niezależnie od adresu IP; powiązanie z adresem IP jest opcjonalne
- Zweryfikowana sesja: wpisany kod obowiązuje domyślnie 12 godzin (od 1 do 168 godzin); wylogowanie go unieważnia
- Pole „Zapamiętaj to urządzenie” jest domyślnie zaznaczone (do ustawienia)
- Każdy pracownik widzi swoje urządzenia (przeglądarka, system, ostatnie użycie, ważność) i usuwa te, których już nie używa; maksymalnie 20 urządzeń na pracownika
Profile obowiązkowe i okres przejściowy
- Wybór profili, dla których 2FA jest obowiązkowe (na przykład SuperAdmin); pozostali pracownicy włączają je dowolnie
- Okres przejściowy domyślnie 7 dni, liczony od dnia, w którym profil staje się obowiązkowy: w tym czasie komunikat pokazuje pozostałe dni, a pracownik może wybrać „Nie teraz”
- Po upływie okresu pracownik jest kierowany na stronę konfiguracji i nie może otworzyć panelu, dopóki jej nie zakończy
Moje uwierzytelnianie dwuskładnikowe i panel
- Każdy pracownik zarządza swoim 2FA w „Moje uwierzytelnianie dwuskładnikowe”: włączenie, zmiana telefonu, tworzenie nowych kodów odzyskiwania, zarządzanie zaufanymi urządzeniami i, poza profilem obowiązkowym, wyłączenie
- Superadministratorzy mają panel: liczba pracowników, pracownicy chronieni, oczekujące obowiązkowe konfiguracje, zablokowane konta oraz tabela z profilem, statusem, pozostałymi kodami odzyskiwania, urządzeniami i ostatnio wpisanym kodem każdego pracownika
- Reset (zgubiony telefon) lub odblokowanie współpracownika wykonuje się z tabeli, potwierdzając własnym kodem
Panel pracowników
Dziennik bezpieczeństwa
- Kody zaakceptowane lub błędne, użyte kody odzyskiwania, blokady i odblokowania, zmiany telefonu, nowe kody odzyskiwania, dodane lub usunięte urządzenia, resety, wyłączenia
- Filtr według pracownika, stronicowanie, adres IP i szczegóły każdego wiersza; żaden kod ani sekret nie jest zapisywany
- Automatyczne czyszczenie raz dziennie (domyślnie 90 dni)
Dostęp awaryjny
- 10 kodów odzyskiwania jednorazowego użytku na pracownika
- Reset przez superadministratora z panelu
- Polecenie konsoli
wepresta:2fa:disable(jeden pracownik lub cały sklep, z symulacją) - Plik
DISABLE_2FAw folderze modułu: zawiesza żądanie kodu dla wszystkich, dopóki istnieje, z czerwonym komunikatem dla superadministratorów
Licencja i informacje techniczne
- Licencja nigdy nie wyłącza ochrony: po wygaśnięciu blokowane są tylko ustawienia i panel
- Bez overrides rdzenia PrestaShop, bez zewnętrznych bibliotek PHP, archiwum mniejsze niż 250 KB
- Interfejs dostępny po francusku, angielsku, hiszpańsku, włosku i polsku
Wymagania
- PrestaShop: 1.7.8, 8.2+ lub 9.1+. PrestaShop 1.7.7, 8.0, 8.1 i 9.0 nie są obsługiwane.
- PHP: minimum 7.4, w wersji obsługiwanej przez Twój PrestaShop, z rozszerzeniami
json,opensslimbstring. - Aplikacja uwierzytelniająca na telefonie każdego zainteresowanego pracownika (Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden lub odpowiednik) oraz czas telefonu ustawiony automatycznie.
- Zalecany HTTPS dla panelu administracyjnego.
Instalacja
Metoda 1 — przez Back Office (zalecana)
- Pobierz archiwum z panelu klienta WePresta
- Przejdź do Moduły > Menedżer modułów
- Kliknij Prześlij moduł
- Wybierz pobrane archiwum ZIP
- Poczekaj na zakończenie instalacji, kliknij Konfiguruj i aktywuj licencję
Metoda 2 — przez FTP
- Rozpakuj archiwum ZIP
- Wgraj folder
wepresta_admin_2fa/do/modules/ - W back office: Moduły > Menedżer modułów
- Znajdź moduł i kliknij Zainstaluj
- Kliknij Konfiguruj i aktywuj licencję
Co robi instalacja
- Tworzy tabele modułu (rejestracje, zaufane urządzenia, dziennik)
- Rejestruje potrzebne hooki i otwiera stronę kodu oraz „Moje uwierzytelnianie dwuskładnikowe” wszystkim profilom, także tworzonym później; panel pozostaje zarezerwowany dla superadministratorów
- Inicjuje ustawienia: 2FA włączone, żaden profil nie jest obowiązkowy
Uwaga: dopóki nie wybierzesz profilu obowiązkowego, nikt nie jest zmuszony do konfiguracji 2FA. Każdy pracownik może włączyć je sam; strona ustawień i panel ostrzegają, jeśli Twoje własne konto nie jest jeszcze chronione.
Aktualizacja z wersji 1.0.0
- Wykonaj kopię zapasową sklepu (pliki i baza danych).
- Prześlij archiwum 2.0.0 w Moduły > Menedżer modułów: PrestaShop uruchomi aktualizację.
- Rejestracje, kody odzyskiwania, dziennik i Twoje ustawienia zostają zachowane. Niepotrzebne pliki wersji 1.0.0 są usuwane.
- Zaufane urządzenia z wersji 1.0.0 nie są już rozpoznawane: każdy pracownik wpisuje kod raz na przeglądarkę.
- Okres przejściowy profili, które są już obowiązkowe, zaczyna się od nowa w dniu aktualizacji.
- Jeśli kontrola licencji z wersji 1.0.0 wyłączyła moduł, aktualizacja włącza go ponownie.
- Otwórz ustawienia, sprawdź profile obowiązkowe i czasy, a następnie sprawdź własne logowanie.
Konfiguracja
Dostęp: Moduły > Menedżer modułów > Konfiguruj. Przyciski Moje uwierzytelnianie dwuskładnikowe i Otwórz panel znajdują się w tym samym bloku.
Ustawienia
- Włącz uwierzytelnianie dwuskładnikowe: po wyłączeniu nikt nie jest proszony o kod; rejestracje zostają zachowane
- Obowiązkowe dla tych profili: profile, dla których 2FA jest obowiązkowe
- Okres przejściowy: od 0 do 365 dni (domyślnie 7), liczony od dnia, w którym profil staje się obowiązkowy
- Zapamiętaj urządzenie na: od 0 do 365 dni (domyślnie 30); 0 wyłącza zaufane urządzenia
- Domyślnie zaznaczaj „zapamiętaj to urządzenie”: zaznacza pole na stronie kodu
- Powiąż zaufane urządzenie z jego adresem IP: ostrzejsza kontrola, kod jest ponownie wymagany przy każdej zmianie adresu
- Poproś o kod ponownie po: od 1 do 168 godzin (domyślnie 12), czas zweryfikowanej sesji
- Błędne kody przed blokadą: od 1 do 20 (domyślnie 5)
- Czas blokady: od 1 do 1440 minut (domyślnie 15)
- Nazwa wyświetlana w aplikacji uwierzytelniającej: domyślnie nazwa sklepu
- Przechowuj dziennik przez: od 7 do 3650 dni (domyślnie 90); starsze zdarzenia są usuwane automatycznie
Licencja
Aktywuj licencję w ustawieniach modułu. Bez aktywnej licencji 2FA nadal działa, ale ustawienia i panel są zablokowane za formularzem licencji; komunikat zachęca do jej odnowienia. Aktywacja lub odnowienie licencji ponownie otwiera ustawienia.
Włączenie własnego 2FA (pracownik)
- Otwórz Moje uwierzytelnianie dwuskładnikowe w menu swojego profilu (u góry po prawej w panelu), a następnie kliknij Skonfiguruj.
- Zainstaluj aplikację uwierzytelniającą na telefonie, jeśli nie jest jeszcze zainstalowana.
- Zeskanuj kod QR aplikacją. Na samym telefonie użyj Otwórz w aplikacji na tym telefonie; w przeciwnym razie wpisz klucz wyświetlany pod kodem QR.
- Wpisz kod wyświetlany w aplikacji, aby potwierdzić, a następnie kliknij Włącz uwierzytelnianie dwuskładnikowe.
- Zachowaj swoje 10 kodów odzyskiwania (kopiuj, pobierz lub wydrukuj), a następnie kliknij Kody odzyskiwania mam zapisane. Nie zostaną wyświetlone ponownie.
W okresie przejściowym profilu obowiązkowego komunikat proponuje konfigurację 2FA; potem strona konfiguracji otwiera się sama. Pomyłka przy wpisywaniu nie zmienia kodu QR.
Konfiguracja w trzech krokach
Przy każdym logowaniu
Po wpisaniu hasła podaj 6-cyfrowy kod; jest wysyłany po wpisaniu szóstej cyfry. Zaznacz Zapamiętaj to urządzenie, aby nie wpisywać go w tej przeglądarce przez 30 dni. Z kodem odzyskiwania kliknij Użyj kodu odzyskiwania.
Strona kodu po wpisaniu hasła
Zarządzanie własnym 2FA
Strona Moje uwierzytelnianie dwuskładnikowe pozwala:
- zmienić telefon (Zmień telefon): wymagany jest kod z bieżącej aplikacji (lub kod odzyskiwania), po czym konfiguracja zaczyna się od nowa
- utworzyć nowe kody odzyskiwania (Utwórz nowe kody odzyskiwania): wymagany jest kod, a poprzednie kody zostają unieważnione; ostrzeżenie pojawia się, gdy zostało ich niewiele
- usunąć zaufane urządzenie lub wszystkie urządzenia (Usuń wszystkie urządzenia)
- wyłączyć uwierzytelnianie dwuskładnikowe (Wyłącz uwierzytelnianie dwuskładnikowe), chyba że Twój profil jest obowiązkowy
Moje 2FA: kody odzyskiwania i zaufane urządzenia
Zarządzanie zespołem (panel)
Dostęp: Moduły > Menedżer modułów > Konfiguruj, przycisk Otwórz panel (tylko superadministratorzy).
- Cztery liczniki pokazują liczbę pracowników, pracowników chronionych, niewykonanych konfiguracji obowiązkowych i zablokowanych kont.
- Zakładka Pracownicy pokazuje dla każdego: profil, status (Chroniony, Obowiązkowe przed …, Obowiązkowe, skonfiguruj teraz lub Wyłączona), pozostałe kody odzyskiwania, urządzenia i ostatnio wpisany kod.
- Zresetuj usuwa 2FA pracownika, który zgubił telefon; skonfiguruje je ponownie przy następnym logowaniu. Odblokuj pozwala mu spróbować od razu.
- Każda akcja wymaga Twojego aktualnego kodu (lub kodu odzyskiwania) w panelu potwierdzenia i jest zapisywana w dzienniku.
- Zakładka Dziennik wyświetla zdarzenia, z filtrem według pracownika.
Dostęp awaryjny
Od najprostszego do najbardziej radykalnego:
- Kod odzyskiwania: pracownik wpisuje jeden ze swoich 10 kodów na stronie kodu.
- Reset przez innego superadministratora z panelu.
- Polecenie konsoli, z folderu sklepu:
php bin/console wepresta:2fa:disable --employee=ID_LUB_EMAILusuwa 2FA jednego pracownikaphp bin/console wepresta:2fa:disable --allwyłącza ochronę dla całego sklepu- opcja
--dry-runsymuluje bez zmian
- Plik
DISABLE_2FA: utwórz pusty plik o tej nazwie wmodules/wepresta_admin_2fa/. Nikt nie jest proszony o kod, dopóki istnieje; czerwony komunikat przypomina o tym superadministratorom. Usuń go, aby przywrócić ochronę.
Aby uruchomić na żądanie czyszczenie dziennika i wygasłych urządzeń: php bin/console wepresta:2fa:purge.
Typowe przypadki użycia
Ochrona kont krytycznych w tydzień
Wybierz profil SuperAdmin (i te, które mają dostęp do płatności lub eksportów) w Obowiązkowe dla tych profili, zachowaj 7-dniowy okres przejściowy, a następnie obserwuj wdrożenie w panelu.
Stałe stanowisko pracy
30-dniowe zaufane urządzenie ogranicza wpisywanie do jednego kodu na miesiąc i na przeglądarkę, niezależnie od adresu IP.
Wspólne stanowisko lub wrażliwe połączenie
Ustaw czas zaufanych urządzeń na 0: pole „Zapamiętaj to urządzenie” znika, a kod jest ponownie wymagany po upływie czasu zweryfikowanej sesji (domyślnie 12 godzin, można skrócić). Możesz też powiązać urządzenia z adresem IP, aby zaostrzyć kontrolę.
Zgubiony telefon
Pracownik używa kodu odzyskiwania albo superadministrator klika Zresetuj w panelu.
FAQ
Do czego służy uwierzytelnianie dwuskładnikowe (2FA) w panelu administracyjnym?
2FA dodaje drugą weryfikację przy logowaniu do administracji. Nawet jeśli hasło zostanie skradzione (phishing, wyciek danych, hasło używane w wielu miejscach), panel pozostaje zamknięty bez tymczasowego kodu generowanego na telefonie pracownika. To bezpośrednia ochrona przed przejęciem sklepu: zmianą cen, przekierowaniem zamówień, tworzeniem kont administratora czy eksportem danych klientów.
Jaki typ 2FA jest używany (SMS, e-mail, aplikacja)?
Moduł używa standardu TOTP (Time-based One-Time Password, RFC 6238): 6-cyfrowy kod zmieniający się co 30 sekund, generowany przez aplikację uwierzytelniającą. Nie potrzeba SMS-ów (koszty, dostarczalność) ani e-maili (przejęta skrzynka), a kod generuje się bez połączenia z siecią. Telefon z zegarem przesuniętym o jeden okres 30 sekund jest nadal akceptowany; ten sam kod działa tylko raz.
Które aplikacje są kompatybilne (Google Authenticator, Authy, Microsoft...)?
Wszystkie aplikacje TOTP: Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden i ich odpowiedniki. Każdy pracownik używa wybranej aplikacji, bez narzuconego narzędzia własnościowego. Kod QR skanuje się aplikacją; na telefonie przycisk „Otwórz w aplikacji” lub wpisanie klucza konfiguracyjnego pozwalają uniknąć skanowania.
Czy można wymusić 2FA tylko dla wybranych profili (np. SuperAdmin)?
Tak. W ustawieniach wybierasz profile, dla których 2FA jest obowiązkowe, na przykład SuperAdmin oraz profile mające dostęp do płatności, modułów lub eksportów. Pozostali pracownicy mogą włączyć je sami w „Moje uwierzytelnianie dwuskładnikowe”. Okres przejściowy (domyślnie 7 dni) daje czas na przygotowanie: liczy się od dnia, w którym profil staje się obowiązkowy, a komunikat pokazuje pozostałe dni.
Jak uniknąć spowalniania zespołu koniecznością wpisywania kodu przy każdym logowaniu?
Działają dwa mechanizmy. Zaufane urządzenie zapamiętuje przeglądarkę przez 30 dni (do ustawienia), niezależnie od adresu IP: pracownik wpisuje jeden kod na miesiąc i na przeglądarkę, a pole „Zapamiętaj to urządzenie” jest domyślnie zaznaczone. W przeglądarce, która nie jest zapamiętana, weryfikacja obowiązuje 12 godzin (do ustawienia od 1 do 168 godzin): jeden kod na dzień pracy. Wylogowanie lub usunięcie urządzenia w „Moje uwierzytelnianie dwuskładnikowe” ponownie wymaga kodu. Możesz też powiązać urządzenie z jego adresem IP, aby zaostrzyć kontrolę.
Co się stanie, jeśli pracownik zgubi telefon?
Loguje się jednym z 10 kodów odzyskiwania (jednorazowych), a następnie konfiguruje nową aplikację przyciskiem „Zmień telefon”. Jeśli nie ma już kodów, superadministrator otwiera panel, klika „Zresetuj” w jego wierszu i potwierdza własnym kodem: 2FA pracownika zostaje usunięte, a pracownik konfiguruje je ponownie przy następnym logowaniu. Każdy reset jest zapisywany w dzienniku.
Jakie metody awaryjnego odzyskiwania są dostępne?
Cztery sposoby, od najprostszego do najbardziej radykalnego: kod odzyskiwania pracownika; reset przez innego superadministratora; polecenie konsoli wepresta:2fa:disable (opcja --employee z identyfikatorem lub e-mailem pracownika albo --all dla całego sklepu, a --dry-run do symulacji); pusty plik DISABLE_2FA umieszczony w folderze modułu, który zawiesza żądanie kodu dla wszystkich, dopóki istnieje. Czerwony komunikat przypomina superadministratorom o jego obecności.
Czy moduł chroni przed atakami brute force?
Blokuje drugi krok: po 5 błędnych kodach (do ustawienia od 1 do 20) pracownik jest blokowany na 15 minut (do ustawienia od 1 do 1440 minut). Blokada jest zapisana w bazie danych: ponowne zalogowanie hasłem nie zeruje licznika. Kod jest akceptowany tylko raz. Moduł nie ogranicza prób wpisania hasła.
Czy dostępna jest historia logowań i zdarzeń bezpieczeństwa?
Tak. Dziennik w panelu, dostępny tylko dla superadministratorów, wyświetla z datą, pracownikiem, adresem IP i szczegółami: kody zaakceptowane lub błędne, użyte kody odzyskiwania, blokady i odblokowania, zmiany telefonu, nowe kody odzyskiwania, dodane lub usunięte urządzenia, resety i wyłączenia. Można go filtrować według pracownika i nigdy nie zawiera kodu ani sekretu. Wiersze starsze niż 90 dni (do ustawienia od 7 do 3650 dni) są usuwane automatycznie.
Czy kontrola chroni także formularze i wywołania AJAX w panelu?
Tak. Kod jest sprawdzany, zanim panel wykona cokolwiek: strony, formularze (POST), wywołania AJAX i JSON, strony bez menu. Przy samym haśle strona jest przekierowywana na stronę kodu, a wywołanie AJAX otrzymuje odpowiedź 401 bez danych. Znane ograniczenie w PrestaShop 1.7: dawne samodzielne skrypty backup.php, pdf.php i get-file-admin.php odpowiadają zalogowanemu pracownikowi bez przechodzenia przez rdzeń PrestaShop; strona ustawień to sygnalizuje i zachęca do ich usunięcia.
Co dzieje się z 2FA, gdy licencja wygaśnie?
Nadal działa. Licencja nigdy nie wyłącza ochrony: po wygaśnięciu (koniec okresu próbnego, termin płatności, zawieszona licencja lub błąd serwera licencji) blokowane są tylko ustawienia i panel, za formularzem licencji, z komunikatem. Pracownicy nadal logują się swoim kodem. Aktywacja lub odnowienie licencji ponownie otwiera ustawienia.
Jakie wersje PrestaShop i PHP są obsługiwane i jak zaktualizować z wersji 1.0.0?
Moduł działa z PrestaShop 1.7.8, 8.2+ i 9.1+ oraz PHP 7.4 minimum, w jednym archiwum; PrestaShop 1.7.7, 8.0, 8.1 i 9.0 nie są obsługiwane. Aby zaktualizować, prześlij archiwum 2.0.0 w menedżerze modułów: rejestracje, kody odzyskiwania i dziennik zostają zachowane. Zaufane urządzenia z wersji 1.0.0 nie są już rozpoznawane: każdy pracownik wpisuje kod raz na przeglądarkę.
Czy odinstalowanie usuwa dane?
Tak. Odinstalowanie modułu zatrzymuje ochronę i usuwa rejestracje, zaufane urządzenia, dziennik i ustawienia modułu; PrestaShop prosi wcześniej o potwierdzenie. Po odinstalowaniu panel jest znów chroniony samym hasłem.
Czy można wyłączyć 2FA dla całego sklepu?
Tak, tymczasowo. Przełącznik „Włącz uwierzytelnianie dwuskładnikowe” w ustawieniach zawiesza żądanie kodu dla wszystkich bez usuwania rejestracji; włącz go ponownie, aby przywrócić ochronę. Dla jednego pracownika użyj „Zresetuj” w panelu lub, jeśli jego profil nie jest obowiązkowy, „Wyłącz uwierzytelnianie dwuskładnikowe” na jego stronie.
Czy moduł zmienia motyw lub wygląd sklepu?
Nie. Moduł działa tylko w panelu administracyjnym: niczego nie dodaje do tego, co widzą klienci, nie zastępuje żadnego pliku PrestaShop (bez overrides), więc działa z każdym motywem.
Czy dane 2FA są chronione?
Tak. Sekrety TOTP są zapisywane w formacie szyfrowanym i uwierzytelnianym, kody odzyskiwania i tokeny zaufanych urządzeń w postaci skrótów, a dziennik nigdy nie zawiera kodu ani sekretu. Klucze wynikają z klucza szyfrowania PrestaShop, którego nie ma w bazie danych: sam eksport bazy nie pozwala wygenerować poprawnego kodu.
Czy zaufane urządzenie jest bezpieczne?
Opiera się na ciasteczku właściwym dla pracownika i przeglądarki (HttpOnly, SameSite=Lax), z którego baza danych przechowuje tylko skrót. Wygasa w wybranym terminie (domyślnie 30 dni), pracownik może je w każdej chwili usunąć w „Moje uwierzytelnianie dwuskładnikowe”, a Ty możesz powiązać je z adresem IP, aby zaostrzyć kontrolę. Na wspólnym stanowisku wyłącz zaufane urządzenia (czas 0).
Rozwiązywanie problemów
Kod nigdy nie jest akceptowany
- Sprawdź, czy czas telefonu jest ustawiony automatycznie: przesunięcie większe niż 30 sekund powoduje odrzucenie kodu
- Poczekaj na następny kod, jeśli wyświetlany właśnie został użyty: kod jest akceptowany tylko raz
- Po 5 błędnych kodach konto jest domyślnie blokowane na 15 minut: komunikat pokazuje pozostały czas albo superadministrator klika Odblokuj
Nie mogę już otworzyć panelu
- Użyj kodu odzyskiwania albo poproś superadministratora o reset
- W przeciwnym razie zastosuj dostęp awaryjny: polecenie
wepresta:2fa:disablelub plikDISABLE_2FA
Kod jest wymagany zbyt często
- Czy zaufane urządzenia są włączone (czas większy niż 0) i czy pole „Zapamiętaj to urządzenie” jest zaznaczone?
- Czy przeglądarka usuwa ciasteczka przy zamknięciu albo czy pracownik korzysta z trybu prywatnego?
- Czy powiązanie z adresem IP jest włączone? Kod jest wtedy wymagany ponownie przy każdej zmianie adresu
- Czy urządzenie zostało usunięte w „Moje uwierzytelnianie dwuskładnikowe”?
Link „Moje uwierzytelnianie dwuskładnikowe” się nie pojawia
- Wyczyść cache: Parametry zaawansowane > Wydajność > Wyczyść cache
- Link znajduje się w menu profilu, u góry po prawej, obok „Wyloguj”
- Sprawdź, czy moduł jest zainstalowany i włączony
Po instalacji z wiersza poleceń kontrola nie wydaje się działać
- Wyczyść cache PrestaShop: moduł odbudowuje go także samodzielnie, gdy tylko zauważy problem (najwyżej raz na 10 minut)
Strona ustawień sygnalizuje skrypty do usunięcia
- W PrestaShop 1.7 dawne skrypty
backup.php,pdf.phpiget-file-admin.phpodpowiadają zalogowanemu pracownikowi bez przechodzenia przez rdzeń PrestaShop, a więc bez kontroli modułu. Usuń je, jeśli istnieją w katalogu głównym sklepu.
Pracownik nie może już zatwierdzić kodu po migracji sklepu
- Jeśli klucz szyfrowania PrestaShop (
_COOKIE_KEY_) się zmienił, zapisane sekrety nie są już czytelne: dziennik pokazuje „Sekret nieczytelny”. Zresetuj pracownika w panelu lub poleceniem konsoli, a następnie skonfiguruje on 2FA ponownie.
Changelog
Wersja 2.0.0
Nowości
- Moduł działa w PrestaShop 1.7.8, 8.2+ i 9.1+, z PHP 7.4 minimum, w jednym archiwum.
- Każdy pracownik ma stronę „Moje uwierzytelnianie dwuskładnikowe”: włączenie 2FA, zmiana telefonu, tworzenie nowych kodów odzyskiwania, zarządzanie zaufanymi urządzeniami i, poza profilem obowiązkowym, wyłączenie.
- Panel superadministratorów wyświetla pracowników (status, termin, pozostałe kody odzyskiwania, urządzenia, ostatnio wpisany kod) i dziennik bezpieczeństwa z filtrem według pracownika.
- Superadministrator resetuje lub odblokowuje współpracownika w panelu, potwierdzając własnym kodem.
- Zaufane urządzenie jest zapamiętywane przez 30 dni na przeglądarkę, niezależnie od adresu IP; powiązanie z adresem IP staje się opcją.
- Weryfikacja obowiązuje 12 godzin (do ustawienia od 1 do 168 godzin) i kończy się po wylogowaniu.
- Okres przejściowy profilu obowiązkowego liczy się od dnia, w którym profil taki się staje, a komunikat pokazuje pozostałe dni.
- Konfiguracja zajmuje dwie minuty: kod QR zostaje po pomyłce, klucz konfiguracyjny jest czytelny, a przycisk otwiera aplikację na telefonie.
- Dziennik i wygasłe urządzenia są usuwane automatycznie raz dziennie; polecenie konsoli
wepresta:2fa:purgeuruchamia czyszczenie na żądanie.
Ulepszenia
- Kod jest wymagany przed każdą akcją w panelu: strony, formularze, wywołania AJAX i JSON.
- Zmiana telefonu lub utworzenie nowych kodów odzyskiwania wymaga poprawnego kodu.
- Kod jest akceptowany tylko raz, a zegar telefonu może być przesunięty o jeden okres 30 sekund.
- Sekrety są zapisywane w formacie szyfrowanym i uwierzytelnianym; te z wersji 1.0.0 pozostają czytelne.
- Strona kodu jest samodzielna, bez menu i linków panelu, a kod jest wysyłany po szóstej cyfrze.
- Licencja nigdy już nie wyłącza 2FA: po wygaśnięciu blokowane są tylko ustawienia i panel, z komunikatem.
- Zaufane urządzenia pokazują przeglądarkę i system, na przykład „Chrome / macOS”.
- Wyświetlana jest liczba pozostałych kodów odzyskiwania, z ostrzeżeniem, gdy zostało ich niewiele.
- Wszystkie profile, także utworzone później, mają dostęp do strony kodu i „Moje uwierzytelnianie dwuskładnikowe”.
- Interfejs jest kompletny po francusku, angielsku, hiszpańsku, włosku i polsku, łącznie z formularzem licencji.
- Moduł nie używa żadnej zewnętrznej biblioteki PHP; archiwum waży mniej niż 250 KB.
Poprawki
- Przy samym haśle nie można już zastąpić telefonu pracownika ani wyświetlić nowych kodów odzyskiwania.
- Formularze, wywołania AJAX i strony bez menu nie wykonują się już bez kodu.
- Wygasła licencja, zakończony okres próbny lub błąd serwera licencji nie wyłączają już ochrony.
- Blokada po błędnych kodach nie jest już zerowana przez nowe logowanie.
- Tolerancja zegara wynosi jeden okres 30 sekund zamiast jednej sekundy.
- Awaryjne polecenie konsoli
wepresta:2fa:disabledziała, a konsola PrestaShop 9 nie zatrzymuje się już, gdy moduł jest aktywny. - Panel jest zarezerwowany dla superadministratorów we wszystkich wersjach.
- Okres przejściowy nie zależy już od wieku konta.
- Automatyczne czyszczenie dziennika i wygasłych urządzeń działa w PrestaShop 9.
Po aktualizacji: rejestracje, kody odzyskiwania i dziennik zostają zachowane. Zaufane urządzenia z wersji 1.0.0 nie są już rozpoznawane: każdy pracownik wpisuje kod raz na przeglądarkę. Okres przejściowy profili, które są już obowiązkowe, zaczyna się od nowa w dniu aktualizacji. Jeśli kontrola licencji z wersji 1.0.0 wyłączyła moduł, aktualizacja włącza go ponownie.
Wersja 1.0.0
- Pierwsze wydanie
- Uwierzytelnianie TOTP
- Kody zapasowe
- Zaufane urządzenia
- Panel administracyjny
- Rejestr audytu
- Metody odzyskiwania awaryjnego
Wsparcie
W razie potrzeby skontaktuj się z nami przez panel klienta WePresta lub e-mailem pod adresem mail@wepresta.shop, zgodnie z opcją wsparcia w Twojej ofercie.
Przed kontaktem przygotuj:
- wersję PrestaShop
- wersję PHP
- zdarzenie, którego dotyczy problem, w dzienniku panelu
- zrzuty ekranu
- logi PrestaShop, jeśli są dostępne