Nagłówki bezpieczeństwa to krótkie instrukcje, które serwer wysyła przeglądarce razem z każdą stroną. Mówią jej na przykład, czy wolno osadzić Twoją stronę w ramce na cudzej witrynie albo skąd może ładować skrypty. Na jdm.pl ustawiasz je w panelu bez wtyczek i bez edytowania plików, a serwer dodaje je do każdej odpowiedzi, także z cache i do stron błędów.
Znajdziesz je tak: zaloguj się do panel.jdm.pl → Hosting → przy stronie kliknij Zarządzaj → zakładka Bezpieczeństwo → karta Nagłówki HTTP. Na tej samej karcie jest HSTS, opisany w osobnym wpisie HSTS: wymuszanie HTTPS w przeglądarkach.
Każdy nagłówek ustawiasz osobno, a zmiany zatwierdzasz przyciskiem Zapisz nagłówki. Jeśli WordPress albo wtyczka wysyła ten sam nagłówek, obowiązuje wartość z panelu, więc przeglądarka nie dostanie dwóch sprzecznych wersji.

X-Content-Type-Options: nosniff
Przeglądarka nie zgaduje typu pliku, tylko trzyma się tego, co podał serwer. Utrudnia to podsunięcie złośliwego skryptu jako obrazka. Rzadko coś psuje, ale może zablokować plik, który stara wtyczka wysyła z błędnym typem.
X-Frame-Options
Określa, czy inne strony mogą wyświetlać Twoją w ramce. Chroni przed atakiem, w którym ktoś pokazuje Twoją stronę w ukrytej ramce i nakłania gości do kliknięć.
- SAMEORIGIN pozwala osadzać stronę tylko w tej samej domenie. Tego wymaga podgląd w edytorach takich jak Elementor.
- DENY blokuje każdą ramkę, także podgląd w edytorze.
Referrer-Policy
Określa, ile z adresu Twojej strony przeglądarka przekazuje innym serwisom, gdy gość kliknie link prowadzący na zewnątrz.
- strict-origin-when-cross-origin: inne serwisy dostają tylko domenę, bez ścieżki i parametrów. Statystyki nadal widzą, skąd przyszedł ruch. Tak domyślnie zachowują się nowe przeglądarki.
- strict-origin: domena także przy przejściach wewnątrz Twojej strony.
- same-origin: inne serwisy nie dostają niczego. Może to utrudnić rozliczanie programów partnerskich, które sprawdzają, skąd przyszedł klient.
- no-referrer: nikt nie dostaje adresu, także Twoja własna analityka.
Permissions-Policy
Wyłącza stronie dostęp do funkcji przeglądarki, z których nie korzysta. Ustawienie Podstawowa: bez kamery, mikrofonu i Google Topics blokuje kamerę, mikrofon i reklamowe śledzenie Google Topics. Geolokalizacja i płatności (Apple Pay, Google Pay) zostają dostępne, bo korzystają z nich mapy „blisko mnie” i sklepy.
Nie włączaj tego ustawienia, jeśli strona używa kamery albo mikrofonu, np. w czacie wideo lub nagrywaniu wiadomości głosowych.
Content Security Policy (CSP)
CSP określa, skąd przeglądarka może ładować skrypty, style, obrazy i ramki. Dobrze ustawiona utrudnia wstrzyknięcie obcego kodu na stronę, ale źle ustawiona potrafi wyłączyć formularze, płatności, mapy, filmy albo Google Tag Managera. Panel daje trzy opcje:
- Brak: nagłówek nie jest wysyłany.
- Podstawowa:
base-uri 'self'; object-src 'none'; frame-ancestors 'self'. Blokuje przestarzałe wtyczki przeglądarki i podmianę adresu bazowego strony, ale nie ogranicza skryptów ani osadzonych treści. - Własna: wpisujesz politykę samodzielnie. Dyrektywy oddzielasz średnikiem, wartości spacją, a słowa kluczowe piszesz w apostrofach, np.
'self'. Panel sprawdza składnię i wskaże błąd, np. literówkę w nazwie dyrektywy.
Tryb testowy i egzekwowanie
Domyślnie polityka działa w trybie Report-Only: przeglądarka niczego nie blokuje, tylko zapisuje naruszenia w konsoli. Dzięki temu bezpiecznie sprawdzisz, co polityka zablokowałaby na Twojej stronie.
- Zapisz politykę bez zaznaczania Egzekwuj politykę CSP.
- Otwórz stronę, naciśnij F12 i przejdź do zakładki Console (Konsola).
- Przejdź po najważniejszych podstronach: stronie głównej, formularzu kontaktowym, koszyku, płatności. Szukaj komunikatów zawierających „Content-Security-Policy”.
- Jeśli konsola zgłasza naruszenia, dopisz brakujące adresy do polityki i sprawdź ponownie.
- Gdy przez kilka dni nie ma zgłoszeń, zaznacz Egzekwuj politykę CSP i kliknij Zapisz nagłówki. Panel poprosi o potwierdzenie.
Najczęstsze problemy
Po zmianie nagłówków przestał działać formularz, mapa albo statystyki.
Przywróć poprzednie ustawienie ostatnio zmienionego nagłówka i zapisz, żeby od razu przywrócić działanie strony. Przy CSP wystarczy odznaczyć Egzekwuj politykę CSP. Potem sprawdź w konsoli przeglądarki, co dokładnie było blokowane.
Podgląd w Elementorze pokazuje pustą ramkę.
Ustaw X-Frame-Options na SAMEORIGIN zamiast DENY, a w polityce CSP nie używaj frame-ancestors 'none'.
Panel nie przyjmuje polityki z report-uri.
Wysyłanie raportów na zewnętrzne serwery jest wyłączone, bo raporty zawierają adresy podstron odwiedzanych przez Twoich gości. Naruszenia sprawdzisz w konsoli przeglądarki.
Panel odrzuca 'nonce-…'.
Nonce musi być inny przy każdym wyświetleniu strony, więc wpisany na stałe nie daje ochrony. Zamiast niego dopuść adres źródła skryptu albo jego hash 'sha256-…'.