„Nieprawidłowy token bezpieczeństwa” w PrestaShop
Publikacja: · Grzegorz Rapczyński
Klikasz cokolwiek w panelu i zamiast oczekiwanej strony dostajesz komunikat o nieprawidłowym tokenie bezpieczeństwa, z przyciskiem „Chcę kontynuować". To nie jest błąd - to zabezpieczenie, które zadziałało.
Pytanie brzmi: zadziałało słusznie czy niepotrzebnie. Odpowiedź zależy od tego, co robiłeś chwilę wcześniej.
Do czego służy ten token
Każdy adres w panelu ma doklejony losowy ciąg znaków, powiązany z Twoją sesją. Chroni przed atakiem, w którym obca strona wysyła żądanie w Twoim imieniu - na przykład kasuje produkt, gdy jesteś zalogowany i akurat gdzieś klikniesz.
Sklep sprawdza, czy token w adresie zgadza się z sesją. Nie zgadza się - zatrzymuje operację i pyta, czy na pewno chcesz kontynuować. Mechanizm działa dokładnie tak, jak powinien.
Kiedy to nic nie znaczy
Cztery sytuacje, w których komunikat jest całkowicie normalny:
- Otworzyłeś zakładkę panelu sprzed kilku godzin. Sesja wygasła, token stracił ważność. Wystarczy odświeżyć panel od głównego adresu.
- Wszedłeś z zakładki w przeglądarce albo z zapisanego linku. Adresy panelu zawierają token, więc zapisywanie ich w ulubionych nie ma sensu - zadziałają najwyżej do końca sesji.
- Byłeś zalogowany na dwóch kontach albo w dwóch przeglądarkach. Każda sesja ma własne tokeny.
- Ktoś przesłał Ci link do panelu. Ten sam mechanizm - u Ciebie token będzie inny.
W każdym z tych przypadków możesz spokojnie kliknąć „Chcę kontynuować". Wejdź jednak na panel od nowa, zamiast klikać tak przy każdej operacji - komunikat wtedy zniknie.
Kiedy to sygnał problemu
Uwagę powinno zwrócić dopiero to, że komunikat wyskakuje stale, przy każdym kliknięciu, nawet po świeżym zalogowaniu. Wtedy przyczyna jest poważniejsza i sprowadza się zwykle do jednej z trzech rzeczy:
- Sesja się nie utrzymuje - ten sam mechanizm, który powoduje, że panel nie wpuszcza mimo dobrego hasła. Najczęściej chodzi o adres sklepu zapisany w ustawieniach inaczej, niż ten, pod którym faktycznie pracujesz.
- Niezgodność HTTPS i zwykłego HTTP - część panelu działa po szyfrowanym połączeniu, część nie, a ciasteczko sesji nie przechodzi między nimi.
- Cache po stronie serwera serwuje zapamiętaną stronę panelu ze starym tokenem. Panel administracyjny nigdy nie powinien być cache'owany - jeśli hosting robi to domyślnie, trzeba go wyłączyć dla tego adresu.
Jeśli to ostatnie, warto od razu sprawdzić, czy sklep w ogóle działa po jednym, spójnym adresie. Rozjechane wersje z www i bez to źródło wielu drobnych, trudnych do uchwycenia problemów - nie tylko tego.
Najczęstsze pytania
Czy klikanie „Chcę kontynuować” jest bezpieczne?
Przy operacji, którą sam przed chwilą uruchomiłeś - tak. Gdyby komunikat pojawił się bez powodu, po wejściu na obcą stronę, lepiej go nie zatwierdzać i wylogować się z panelu.
Da się wyłączyć ten mechanizm?
Da się, ale nie należy. To jedno z podstawowych zabezpieczeń panelu. Jeśli przeszkadza, to znaczy, że trzeba naprawić sesje, a nie usuwać ostrzeżenie.
Dlaczego adres panelu wygląda tak dziwnie?
Bo zawiera właśnie ten token. Dlatego adresów panelu nie zapisuje się w zakładkach i nie przesyła innym - u odbiorcy i tak nie zadziałają.
Komunikat wraca mimo świeżego logowania
To zwykle znak, że sesje albo adresy sklepu są rozjechane. Napisz - sprawdzę konfigurację i powiem, co dokładnie się nie zgadza. Formularz kontaktowy, 881 932 088 lub kontakt@grvision.pl.