Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator nagłówka CSP

Zbuduj politykę Content-Security-Policy i skopiuj gotowy nagłówek albo znacznik meta.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Ustaw dyrektywy i kliknij „Generuj CSP”.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator nagłówka CSP — polityka Content-Security-Policy bez zgadywania

Generator nagłówka CSP składa politykę Content-Security-Policy z dziesięciu dyrektyw decydujących o odporności strony na wstrzyknięcia kodu. Wpisz listy źródeł, wybierz nagłówek HTTP albo znacznik <meta> i skopiuj gotową linię do konfiguracji serwera.

Co dokładnie robi to narzędzie

Formularz przyjmuje dziesięć dyrektyw z listami źródeł — od default-src po frame-ancestors. Puste pola są pomijane, nadmiarowe spacje redukowane, a powtórzone źródła w jednej dyrektywie usuwane: nagłówek leci z każdą odpowiedzią, więc jego długość ma znaczenie. Znaki ; i cudzysłowy proste są odfiltrowane, żeby wklejona wartość nie rozbiła listy dyrektyw.

Wynik dostajesz jako linię Content-Security-Policy: … dla serwera albo jako znacznik <meta http-equiv>. Nagłówek HTTP jest wersją pełną: wariant meta nie obsługuje frame-ancestors, report-uri ani sandbox, dlatego generator pomija wtedy tę dyrektywę.

Dyrektywy, które generator ustawia

DyrektywaZa co odpowiadaStart
default-srcWartość zapasowa dla pozostałych *-src'self'
script-srcSkrypty JavaScript, moduły, workery'self'
style-srcArkusze CSS i style osadzone w HTML'self'
img-srcObrazy, także data: i blob:'self' data:
connect-srcfetch, XHR, WebSocket, beacon'self'
object-srcWtyczki: object, embed'none'
base-uriDozwolone wartości znacznika base'self'
form-actionCele wysyłki formularzy'self'
frame-ancestorsKto może osadzić stronę w ramce'none'

Dwie pozycje z tej listy domykają typowe obejścia polityki. object-src 'none' wyłącza stare wtyczki, przez które dawało się wykonać kod pomimo restrykcyjnego script-src. base-uri 'self' blokuje podmianę <base href> kierującą względne adresy skryptów na obcy serwer.

Jak wdrożyć CSP i nie zepsuć strony

  1. Wyślij politykę najpierw pod nazwą Content-Security-Policy-Report-Only. Przeglądarka nic wtedy nie blokuje, tylko raportuje naruszenia.
  2. Przeklikaj serwis, zwłaszcza podstrony z mapami, płatnościami, czatem i wideo — tam wychodzą brakujące domeny.
  3. Uzupełnij listy źródeł adresami z raportów i sprawdź, czy nagłówek dociera do przeglądarki: pokaże to analizator nagłówków HTTP.
  4. Gdy raporty milczą przez kilka dni normalnego ruchu, zmień nazwę nagłówka na Content-Security-Policy i polityka zaczyna wymuszać reguły.

Nagłówek dodajesz w konfiguracji serwera: na Apache przez Header always set w .htaccess (pomoże generator .htaccess), na nginksie przez add_header w bloku lokalizacji (konfigurator bloków location nginx).

Header always set Content-Security-Policy "default-src 'self'; object-src 'none'"

Dlaczego 'unsafe-inline' w script-src znosi ochronę

CSP zatrzymuje XSS w jednym miejscu: nie pozwala uruchomić skryptu, którego nie zadeklarowałeś. Wstrzyknięty <script>alert(1)</script> jest właśnie skryptem inline. Gdy w script-src pojawi się 'unsafe-inline', przeglądarka wykona każdy kod osadzony w HTML — także ten z pola komentarza. Najczęstszy scenariusz ataku przechodzi wtedy bez przeszkód. To samo dotyczy 'unsafe-eval', które otwiera eval().

Generator ostrzega, gdy 'unsafe-inline' lub 'unsafe-eval' trafi do script-src albo default-src. W style-src ryzyko jest mniejsze, dlatego domyślna polityka dopuszcza tam style inline.

Zamiast 'unsafe-inline' użyj jednorazowego nonce: serwer losuje wartość dla każdej odpowiedzi i wpisuje ją do nagłówka oraz w atrybut nonce zaufanych znaczników. Atakujący nie zna tej wartości, więc jego kod się nie wykona. Dla stałych bloków alternatywą jest hash 'sha256-…' z dokładnej treści skryptu — policzysz go generatorem hashy.

frame-ancestors, X-Frame-Options i upgrade-insecure-requests

frame-ancestors określa, kto może umieścić stronę w iframe, i zastępuje starszy X-Frame-Options. Stary nagłówek zna tylko DENY i SAMEORIGIN, nie przyjmuje listy domen, a jego wariant ALLOW-FROM nigdy nie działał w Chrome. Gdy oba są ustawione, przeglądarki honorują CSP.

Warto też dopisać upgrade-insecure-requests. Ta dyrektywa nie ma listy źródeł — jej obecność sprawia, że przeglądarka sama zamienia adresy http:// na https:// przed wysłaniem żądania. Ratuje strony po migracji na HTTPS ze starymi odnośnikami do obrazków po HTTP. Co jeszcze ładuje się bez szyfrowania, sprawdzisz detektorem mixed content.

Najczęściej zadawane pytania

Czy CSP w wersji meta jest równoważny nagłówkowi?

Nie. Wersja <meta http-equiv> obsługuje większość dyrektyw, ale przeglądarka ignoruje w niej frame-ancestors, report-uri i sandbox. Reguły obowiązują dopiero od sparsowania znacznika, więc zasoby wskazane wyżej mogą się już załadować.

Od czego zacząć, gdy strona nie ma żadnego CSP?

Od default-src 'self', object-src 'none' i base-uri 'self' w trybie raportowania. Ta trójka rzadko cokolwiek psuje, a odcina najprostsze wektory. Potem dodawaj domeny wynikające z raportów: CDN z czcionkami, analitykę, mapy.

Dlaczego polityka blokuje mój własny skrypt?

Najczęściej dlatego, że skrypt jest osadzony w HTML, a nie wczytywany z pliku — 'self' dotyczy plików, nie kodu inline. Druga typowa przyczyna to obsługa zdarzeń w atrybutach, np. onclick. Konsola przeglądarki podaje dyrektywę, która zablokowała żądanie.

Czy CSP zastępuje sanityzację danych wejściowych?

Nie, jest drugą linią obrony. Escapowanie danych zapobiega wstrzyknięciu, a CSP ogranicza skutki, jeśli wstrzyknięcie się uda. Sama polityka nie chroni przed SQL injection ani CSRF.

Czy CSP wpływa na wydajność i SEO?

Nagłówek to kilkaset bajtów na odpowiedź, więc koszt jest pomijalny. Zbyt restrykcyjna polityka może jednak zablokować skrypty renderujące treść i wtedy robot zobaczy pustą stronę.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!