# Security Headers: nagłówki bezpieczeństwa i CSP dla PrestaShop 8 i 9

> DataFirefly Security Headers wysyła nagłówki bezpieczeństwa HTTP z PrestaShop 8 i 9: Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy i Cross-Origin-Opener-Policy. Moduł konfiguruje się w Zaawansowane > Nagłówki bezpieczeństwa, w sześciu…

- Strona: <https://www.datafirefly.com/pl/documentation/dfsecurityheaders/>
- Język: pl
- Zaktualizowano: 2026-09-30
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfsecurityheaders/index.md), [en](https://www.datafirefly.com/en/documentation/dfsecurityheaders/index.md), [es](https://www.datafirefly.com/es/documentation/dfsecurityheaders/index.md), [de](https://www.datafirefly.com/de/documentation/dfsecurityheaders/index.md), [it](https://www.datafirefly.com/it/documentation/dfsecurityheaders/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfsecurityheaders/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfsecurityheaders/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

DataFirefly Security Headers wysyła nagłówki bezpieczeństwa HTTP z PrestaShop 8 i 9: Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy i Cross-Origin-Opener-Policy. Moduł konfiguruje się w **Zaawansowane > Nagłówki bezpieczeństwa**, w sześciu kartach: Pulpit, Ogólne i tryb testowy, Content-Security-Policy, HSTS i inne nagłówki, Permissions-Policy oraz Naruszenia CSP.

## Instalacja

1. W **Moduły > Menedżer modułów** kliknij **Załaduj moduł** i wyślij plik ZIP.
2. Moduł instaluje się w trybie testowym, z CSP w trybie Report-Only i włączonym zbieraniem naruszeń: żaden odwiedzający nie jest blokowany.
3. Otwórz **Zaawansowane > Nagłówki bezpieczeństwa**. Link Konfiguruj w menedżerze modułów prowadzi w to samo miejsce.

## Uruchomienie produkcyjne krok po kroku

Lista **Uruchomienie produkcyjne** na pulpicie prowadzi przez te kroki i pokazuje ich stan.

1. **Wskaż urządzenia testowe.** Karta Ogólne i tryb testowy: kliknij **Dodaj mój adres IP** albo skopiuj link testowy i otwórz go na telefonie.
2. **Zaznacz używane usługi** na karcie Content-Security-Policy, w bloku Usługi zewnętrzne.
3. **Przejrzyj sklep** z urządzenia testowego: strona główna, kategoria, karta produktu, koszyk, proces zamówienia aż do płatności, konto klienta. Naruszenia pojawiają się na karcie Naruszenia CSP w ciągu kilku minut.
4. **Obsłuż naruszenia**: zezwól na prawidłowe źródła, zignoruj pozostałe.
5. **Przełącz CSP na Wymuszaj**, gdy przez 24 godziny nie pojawi się nowe naruszenie.
6. **Kliknij Podgląd produkcyjny** na pulpicie, aby zobaczyć ocenę bez trybu testowego, a następnie **wyłącz tryb testowy**.
7. **Sprawdź w publicznym skanerze**, takim jak securityheaders.com lub Mozilla Observatory, po wyczyszczeniu cache CDN, jeśli z niego korzystasz.

## Tryb testowy

Dopóki tryb testowy jest włączony, każde żądanie jest obsługiwane na jeden z tych sposobów:

- **Urządzenia testowe** (IP z listy lub przeglądarka otwarta linkiem testowym): wszystkie nagłówki, CSP wymuszona niezależnie od wybranego trybu, HSTS ograniczony do 5 minut i bez preload.
- **Pozostali odwiedzający**: tylko CSP w trybie Report-Only, jeśli zbieranie naruszeń jest włączone. Nic nie jest blokowane, ale ich przeglądarki zgłaszają, co zostałoby zablokowane.

Po wyłączeniu trybu testowego wszyscy odwiedzający otrzymują pełną konfigurację.

Lista IP przyjmuje adresy IPv4 i IPv6 oraz zakresy CIDR, jeden w wierszu. **Link testowy** oznacza przeglądarkę, która go otworzy, jako urządzenie testowe na 24 godziny, co przydaje się dla telefonu w sieci komórkowej ze zmiennym IP. Otwórz ten sam adres z `?dfsh_test=off`, aby zakończyć wcześniej. **Utwórz nowy link** unieważnia poprzednie linki.

Opcja **Stosuj w panelu administracyjnym** wysyła w panelu HSTS, X-Frame-Options z wartością SAMEORIGIN, X-Content-Type-Options i Referrer-Policy. CSP i Permissions-Policy nigdy nie są tam stosowane.

## Content-Security-Policy

### Dyrektywy

Każda dyrektywa przyjmuje źródła oddzielone spacjami lub znakami nowej linii: słowa kluczowe (`'self'`, `'none'`, `'unsafe-inline'`, `'unsafe-eval'`), hosty (`https://www.example.com`, `*.example.com`), schematy (`data:`, `https:`), nonce i skróty. Brakujące apostrofy wokół słów kluczowych są dodawane. Nieprawidłowa wartość jest odrzucana i zgłaszana przy zapisie. Pusta dyrektywa pobierania korzysta z `default-src`; pozostałe puste dyrektywy nie są wysyłane.

### Usługi zewnętrzne

Każda zaznaczona usługa dodaje swoje domeny do potrzebnych dyrektyw, bez zmiany Twoich wpisów: Google Analytics 4 i Tag Manager, Google Ads, Google Fonts, reCAPTCHA, Google Maps, YouTube, Vimeo, Meta Pixel, TikTok, Pinterest, Stripe, PayPal, Mollie, Cookiebot, Axeptio, Hotjar, Microsoft Clarity, Trustpilot i Crisp. Dostawcy czasem zmieniają domeny: po włączeniu usługi sprawdź kartę naruszeń.

### Opcje

- **Uwzględnij serwery multimediów**: dodaje serwery ustawione w Zaawansowane > Wydajność do dyrektyw obrazów, skryptów, stylów, czcionek i multimediów.
- **Podnoś niezabezpieczone żądania**: wysyła `upgrade-insecure-requests` w trybie Wymuszaj, w sklepie na https.
- **Adresy URL wyłączone z CSP**: jeden fragment adresu URL w wierszu. CSP nie jest wysyłana, gdy żądany adres zawiera jeden z nich, na przykład problematyczną stronę powrotu z płatności.

## Nonce i ocena A+

Domyślna konfiguracja pozostawia `'unsafe-inline'` w `script-src`, ponieważ motywy PrestaShop używają skryptów inline. Skanery ograniczają wtedy ocenę do A. Aby celować w A+:

1. W bloku **Ścisła CSP z nonce** włącz **Dodawaj nonce do skryptów** przy aktywnym trybie testowym.
2. Moduł generuje losowy nonce na każdej stronie, dodaje go do wszystkich znaczników `` i usuwa `'unsafe-inline'` z `script-src`.
3. Przejrzyj sklep i obsłuż naruszenia. Skrypty wstawiane później przez JavaScript bez nonce pojawiają się w dzienniku, na przykład niestandardowe tagi HTML w Google Tag Manager, które muszą używać zmiennej nonce GTM.
4. Gdy dziennik nie pokazuje już naruszeń `eval`, usuń `'unsafe-eval'` z `script-src`.

Opcja **Zachowaj wbudowane procedury obsługi zdarzeń** dodaje `script-src-attr 'unsafe-inline'`, aby atrybuty `onclick` dalej działały. Pozostaw ją włączoną, chyba że motyw i moduły ich nie używają; niektóre publiczne skanery ją zgłaszają.

Moduł pełnego cache stron zapisuje HTML z nonce pierwszego odwiedzającego, który nie pasuje do kolejnych. Wyłącz te strony z cache lub pozostaw nonce wyłączony. Natywny cache PrestaShop nie jest tym objęty.

Dla programistów: nonce strony jest dostępny w Smarty jako `{$dfsh_nonce}`, a w PHP przez `DfSecurityHeaders::getNonce()`. Jest automatycznie dodawany do znaczników script w wyjściu HTML; te odwołania służą do kodu generowanego poza tym wyjściem.

## Dziennik naruszeń

Raporty przeglądarek są grupowane według dyrektywy i zablokowanego źródła, z liczbą wystąpień, datą ostatniego zgłoszenia, przykładową stroną oraz, dla kodu inline, jego pierwszymi znakami. Rozszerzenia przeglądarki są pomijane. Adresy URL są zapisywane bez parametrów i żaden adres IP nie jest przechowywany.

- **Zezwól** dodaje źródło do właściwej dyrektywy. Jeśli dyrektywa była pusta, najpierw przejmuje źródła z `default-src`.
- **Ignoruj** usuwa wiersz bez zmiany CSP.
- Pola wyboru pozwalają użyć **Zezwól na zaznaczone** lub **Ignoruj zaznaczone**. Przyciski dyrektyw i pole wyszukiwania filtrują listę.

Zezwolenie na naruszenie `inline` lub `eval` dodaje `'unsafe-inline'` lub `'unsafe-eval'`, co osłabia zasady: lepiej przenieść skrypt do pliku. Przy aktywnym nonce skryptów inline bez nonce nie można zezwolić automatycznie. Naruszenia niewidziane od 30 dni są usuwane automatycznie.

## HSTS i inne nagłówki

- **HSTS**: czas od 5 minut do 2 lat, domyślnie 1 rok. Przeglądarki pamiętają nagłówek przez cały ten czas i odrzucają http. `includeSubDomains` wymusza https na wszystkich subdomenach: włącz tylko, jeśli wszystkie go obsługują. `preload` jest wysyłany tylko z `includeSubDomains` i co najmniej 1 rokiem; zgłaszaj domenę do hstspreload.org tylko, gdy masz pewność, usunięcie z listy trwa miesiącami.
- **X-Frame-Options**: zalecane SAMEORIGIN; DENY blokuje też ramki iframe Twojego sklepu.
- **X-Content-Type-Options**: wysyła `nosniff`.
- **Referrer-Policy**: domyślnie `strict-origin-when-cross-origin`.
- **Cross-Origin-Opener-Policy**: domyślnie wyłączona; `same-origin-allow-popups` zachowuje działanie okien płatności PayPal.
- **Usuń nagłówek X-Powered-By** ukrywa wersję PHP ujawnianą przez niektóre serwery.

## Permissions-Policy

Dla każdej z 19 funkcji: **Zablokowane** wyłącza ją wszędzie, **Tylko ta witryna** zezwala na nią w Twojej domenie i podanych dodatkowych źródłach, **Wszystkie witryny** ją otwiera, **Nie ustawiono** zachowuje domyślne działanie przeglądarki. Funkcje, których sklep nie potrzebuje (kamera, mikrofon, geolokalizacja, czujniki, USB...), są domyślnie zablokowane, a `payment` jest ograniczone do witryny. Usługa Stripe sama dodaje swoje źródło do `payment`.

## Skaner i ocena

**Analizuj bieżące nagłówki** pobiera stronę sklepu z serwera i pokazuje ocenę, szczegóły dla każdego nagłówka, wycieki informacji i surowe nagłówki. Analizować można tylko domeny sklepu. **Podgląd produkcyjny** symuluje konfigurację bez trybu testowego. Ocena stosuje tę samą wagę co publiczne skanery i ma charakter orientacyjny. Ostatnia analiza i historia ocen pozostają widoczne po odświeżeniu.

## Alerty o blokadach

Na karcie Ogólne i tryb testowy włącz **Alerty email** i podaj do 5 odbiorców. Przy wymuszonej CSP i wyłączonym trybie testowym każdy faktycznie zablokowany zasób, którego wcześniej nie widziano, powoduje wysłanie wiadomości z dyrektywą, źródłem i stroną. Nowe pozycje są grupowane, najwyżej jedna wiadomość na godzinę. **Wyślij wiadomość testową** sprawdza konfigurację; jeśli nic nie dotrze, sprawdź Zaawansowane > E-mail.

## Historia, eksport i import

Każda zmiana zachowuje poprzednie ustawienia z datą, pracownikiem i różnicami względem obecnego stanu. Przechowywanych jest 15 ostatnich wersji; **Przywróć** wraca do jednej z nich, a zastąpiony stan trafia do historii.

**Pobierz ustawienia** tworzy plik JSON bez tajnych tokenów, do zaimportowania w innym sklepie, na przykład ze środowiska testowego na produkcję. Import zawsze włącza tryb testowy. Testowe adresy IP są importowane razem z ustawieniami: sprawdź je.

## Cache, CDN i nagłówki serwera

- CDN lub cache stron może serwować stare nagłówki: czyść go po każdej zmianie.
- Jeśli hosting lub Cloudflare już dodaje nagłówki, skaner zgłasza duplikaty. Usuń je po stronie serwera lub wyłącz nagłówek w module.
- Aby nagłówkami zajmował się serwer, skopiuj blok Apache lub Nginx z pulpitu, a następnie wyłącz moduł. Raportowanie naruszeń i nonce, które zależą od modułu, nie są uwzględnione.

## W razie problemów

- **Strona przestała działać**: przywróć poprzednią wersję z historii lub przełącz CSP z powrotem na Report-Only na czas poprawki.
- **Wyłączenie wszystkiego**: wyłącz **Wysyłaj nagłówki bezpieczeństwa** na karcie Ogólne albo cały moduł.
- **HSTS**: przeglądarka, która otrzymała HSTS, odrzuca http do końca ustawionego czasu, nawet po wyłączeniu modułu. Dlatego urządzenia testowe otrzymują tylko 5 minut.
