Bezpieczeństwo w e-commerce to nie opcja, to podstawa zaufania. Każdy wyciek danych klientów lub przestój spowodowany atakiem hakerskim to realne straty finansowe i wizerunkowe. Oficjalne dokumentacje techniczne PrestaShop kładą ogromny nacisk na mechanizmy obronne wbudowane w silnik, które jednak wymagają poprawnej konfiguracji.
Z tego kompendium dowiesz się, jak profesjonalnie zabezpieczyć swój sklep, korzystając ze standardów zalecanych przez twórców oprogramowania.
SSL i certyfikacja
Pierwszym krokiem, bez którego nie należy uruchamiać sprzedaży, jest certyfikat SSL. PrestaShop natywnie wspiera szyfrowanie połączeń, co jest niezbędne do ochrony danych logowania i transakcji płatniczych.
- Włączenie wymuszenia SSL: W panelu administracyjnym (Preferencje > Ogólne) należy aktywować opcję “Włącz protokół SSL” oraz “Wymuś protokół SSL na wszystkich stronach”.
- HSTS (HTTP Strict Transport Security): Dokumentacja dla deweloperów zaleca stosowanie tego nagłówka, który informuje przeglądarkę, że witryna powinna być dostępna wyłącznie przez bezpieczne połączenie HTTPS.
SSL jest też ważny dla pozycjonowania sklepu PrestaShop.
Zarządzanie plikami i uprawnieniami (Deep Dive)
PrestaShop działa w architekturze opartej na systemie plików. Poprawne uprawnienia do folderów są ważne, aby uniemożliwić hakerom wgranie złośliwego oprogramowania.
Uprawnienia systemowe
Zgodnie z oficjalnymi wytycznymi technicznymi:
- Foldery (755) pozwalają na odczyt i wykonanie, ale ograniczają zapis tylko dla właściciela.
- Pliki (644) to standard dla plików skryptów PHP i grafiki.
- Plik .env (600) – w wersjach opartych na Symfony (1.7 i 8.x) plik ten przechowuje klucze szyfrujące i hasła do bazy danych. Powinien mieć najbardziej rygorystyczne uprawnienia.
| Katalog / Plik | Uprawnienie | Dlaczego? |
/config | 755 | Ochrona konfiguracji głównej. |
/img | 755 | Pozwala na wgrywanie zdjęć produktów. |
.htaccess | 644 | Zapobiega nieautoryzowanej zmianie reguł serwera. |
defines.inc.php | 644 | Kluczowy plik definiujący tryb debugowania. |
Ochrona przed atakami SQL Injection w kodzie modułów
Atak SQL Injection polega na “wstrzyknięciu” złośliwego zapytania do bazy danych przez formularz lub URL. Oficjalne źródła PrestaShop wskazują, że system posiada wbudowane mechanizmy obronne, których programiści muszą przestrzegać:
- Sanityzacja danych (pSQL): Każda zmienna przekazywana do zapytania SQL musi zostać przefiltrowana przez funkcję
pSQL(), która usuwa niebezpieczne znaki. - Rzutowanie typów (Type Casting): Jeśli spodziewasz się liczby (ID produktu), zawsze rzutuj zmienną na liczbę całkowitą
(int)$id_product. - Użycie klasy DbQuery: Zamiast pisać zapytania tekstowo, zaleca się używanie obiektowego budowania zapytań, co automatycznie zwiększa bezpieczeństwo kodu.

Zarządzanie uprawnieniami pracowników i 2FA
Częstym błędem jest nadawanie wszystkim pracownikom uprawnień “SuperAdmin”. Oficjalne zasoby edukacyjne PrestaShop rekomendują stosowanie zasady minimalnych uprawnień.
- Profile pracowników: Stwórz osobne profile dla magazynierów (tylko zamówienia), copywriterów (tylko produkty) i obsługi klienta.
- Uwierzytelnianie dwuetapowe (2FA): Choć nie jest ono natywnie wbudowane w starsze wersje, Marketplace Addons oferuje liczne moduły pozwalające na logowanie do panelu administratora za pomocą kodu z aplikacji Google Authenticator.
- Ochrona przed Brute Force: PrestaShop automatycznie wprowadza opóźnienie (throttling) między kolejnymi próbami logowania po błędnym wpisaniu hasła.
Procedury Backup i Disaster Recovery
Bezpieczeństwo to także możliwość szybkiego powrotu do działania po awarii. Ważną rolę odgrywają częste kopie zapasowe.
- Częstotliwość: Backup bazy danych powinien być wykonywany co najmniej raz na 24h, a plików raz w tygodniu.
- Przechowywanie off-site: Nigdy nie trzymaj kopii zapasowej na tym samym serwerze co sklep. W przypadku awarii fizycznej dysku stracisz obie wersje.
- Testy przywracania: Przynajmniej raz na kwartał sprawdź, czy potrafisz przywrócić sklep z kopii zapasowej na środowisku testowym.
Co jeszcze warto wiedzieć o bezpieczeństwie PrestaShop?
Aby stworzyć system odporny na nowoczesne zagrożenia, musimy wdrożyć zaawansowane mechanizmy ochrony na poziomie serwera i kodu.
Nagłówki bezpieczeństwa (Security Headers)
Nagłówki HTTP przesyłane przez serwer informują przeglądarkę, jak ma traktować zawartość Twojej strony. Poprawnie skonfigurowany plik .htaccess powinien wymuszać następujące reguły:
- Content Security Policy (CSP) definiuje, z jakich źródeł mogą być ładowane skrypty i style. Zapobiega to atakom typu Cross-Site Scripting (XSS).
- X-Frame-Options uniemożliwia wyświetlanie Twojego sklepu wewnątrz ramki (iframe) na innej stronie, co chroni przed atakami typu Clickjacking.
- X-Content-Type-Options blokuje przeglądarce możliwość “zgadywania” typu pliku, co uniemożliwia wykonanie złośliwego kodu przesłanego jako plik graficzny.
Bezpieczeństwo Webservices (API)
Wiele sklepów korzysta z API do integracji z systemami ERP czy BaseLinkerem. Dokumentacja techniczna ostrzega, że klucze API dają ogromne uprawnienia.
- Zasada minimalnych uprawnień: Każdy klucz API powinien mieć dostęp tylko do tych zasobów (np. zamówienia), które są mu niezbędne do pracy.
- Ograniczenia IP: Jeśli to możliwe, dostęp do API powinien być ograniczony tylko do adresów IP zaufanych serwerów zewnętrznych.
Jeśli zależy Ci na profesjonalnym i bezpiecznym serwisie, polecamy przeprowadzenie audytu technicznego sklepu.
Bezpieczeństwo sklepu PrestaShop to proces ciągły, łączący higienę pracy z zaawansowaną konfiguracją serwerową. Pamiętaj: najsłabszym ogniwem zazwyczaj nie jest kod, lecz brak aktualizacji lub zbyt szerokie uprawnienia nadane pracownikom.
FAQ – bezpieczeństwo PrestaShop
- 1. Czy mój sklep jest bezpieczny bez dodatkowych modułów?
PrestaShop w czystej wersji jest systemem bezpiecznym, o ile dbasz o aktualizacje i silne hasła pracowników. Moduły z Addons rozszerzają tę ochronę o firewalle i zaawansowane logi.
- 2. Co zrobić, gdy zauważę podejrzany ruch w sklepie?
Niezwłocznie sprawdź logi serwera i logi w panelu PrestaShop (Zaawansowane > Logi). Warto również zweryfikować integralność plików rdzenia z wersją oryginalną.
- 3. Czy PrestaShop chroni przed atakami SQL Injection?
Tak, silnik korzysta z mechanizmów takich jak
DbQueryi funkcjipSQL(), co minimalizuje ryzyko wstrzyknięcia złośliwego kodu, pod warunkiem, że moduły zewnętrzne są napisane zgodnie ze standardami. - 4. Jak bezpiecznie przechowywać hasła klientów?
PrestaShop nie przechowuje haseł w formie tekstu. Są one szyfrowane (hashowane) przy użyciu klucza
_COOKIE_KEY_, co czyni je bezużytecznymi dla włamywacza w przypadku wycieku bazy. - 5. Czy moduły z innych źródeł niż Addons są bezpieczne?
Nie ma takiej gwarancji. Oficjalny sklep Addons to jedyne miejsce, gdzie kod jest audytowany pod kątem bezpieczeństwa przez zespół techniczny PrestaShop.
- 6. Jak dbać o bezpieczeństwo bazy danych?
Zmień domyślny prefiks tabel
ps_na unikalny oraz ogranicz dostęp do bazy danych (port 3306) tylko do adresu IP Twojego serwera. - 7. Czy certyfikat SSL wpływa na SEO?
Tak, Google oficjalnie uznaje posiadanie certyfikatu SSL (HTTPS) za czynnik rankingowy. Brak szyfrowania obniża pozycję sklepu w wynikach wyszukiwania.
- 8. Czym jest tryb Debugowania i czy może być groźny?
Tryb debugowania wyświetla szczegółowe błędy PHP i zapytania SQL. Powinien być włączony TYLKO podczas prac programistycznych. Pozostawienie go na działającym sklepie ułatwia hakerom poznanie struktury Twojej bazy danych.
- 9. Jakie są zalecenia RODO dla sklepów PrestaShop?
Oficjalny moduł RODO (dostępny w Resources) pozwala na automatyczne zarządzanie zgodami klientów, anonimizację danych oraz eksport informacji o użytkowniku na jego żądanie.
- 10. Czy PrestaShop 8 jest bezpieczniejsza niż 1.7?
Tak, PrestaShop 8 usuwa stare zależności (native modules) i wymaga PHP 8.1, co zapewnia nowsze mechanizmy obronne na poziomie silnika języka.












