Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator nagłówka CSP

Ochrona przed XSS i wstrzykiwaniem skryptów

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 wygeneruj nagłówek CSP.

Oceń to narzędzie:

Powiązane narzędzia

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

Generator nagłówka Content-Security-Policy

CSP to nagłówek HTTP, który mówi przeglądarce, skąd wolno ładować skrypty, style, obrazy i inne zasoby. Skutecznie ogranicza ataki XSS.

Najważniejsze dyrektywy

DyrektywaDotyczy
default-srcdomyślne źródło dla wszystkich typów
script-srcskrypty JavaScript
style-srcarkusze stylów
img-srcobrazy
connect-srcżądania fetch, XHR, WebSocket
frame-ancestorskto może osadzać stronę w ramce

Tryb Report-Only

W trybie raportowania polityka nie blokuje zasobów, a jedynie zgłasza naruszenia. To bezpieczny sposób na wdrożenie CSP bez ryzyka zepsucia strony.

Przykład

Polityka default-src 'self'; script-src 'self'; frame-ancestors 'none' pozwala ładować zasoby tylko z własnej domeny i blokuje osadzanie w iframe.

Jak działa generator nagłówka CSP

Generator nie odpytywuje żadnego serwera i nie analizuje Twojej witryny. Bierze wpisane dyrektywy oraz wartości i składa z nich jeden tekstowy ciąg, który staje się wartością nagłówka HTTP Content-Security-Policy. Przeglądarka dzieli ten ciąg na dyrektywy rozdzielone średnikami, a każdą dyrektywę na nazwę i listę wartości rozdzielonych spacją. Kolejność dyrektyw i kolejność wartości wewnątrz dyrektywy nie ma znaczenia — liczy się zbiór, a nie kolejność zapisu.

Mechanizm dopasowania jest prosty: dla każdego żądania zasobu przeglądarka ustala jego typ i szuka dyrektywy odpowiadającej temu typowi, np. script-src dla skryptów. Jeśli takiej dyrektywy w polityce nie ma, używana jest dyrektywa default-src. Gdy brakuje również jej, żądanie nie jest przez CSP ograniczane. Wartości w dyrektywie tworzą listę dozwolonych źródeł, a dopasowanie obejmuje schemat, host i port — dlatego 'self' nie przepuszcza zasobów z subdomeny.

Narzędzie odwzorowuje dokładnie tę składnię: dyrektywy rozdziela średnik, wartości w dyrektywie pojedyncza spacja, a wartości specjalne zapisuje się w apostrofach, np. 'self' albo 'none'. Generator nie ma żadnych tablic stałych ani gotowych presetów, więc wynik zależy wyłącznie od danych, które wpiszesz. To, czego nie podasz, po prostu nie znajdzie się w nagłówku.

Przykład krok po kroku

  1. Wybierasz dyrektywy. Zestaw z tabeli powyżej liczy 6 pozycji. Do przykładu bierzesz 5 z nich: default-src, script-src, style-src, img-src oraz frame-ancestors. Pomijasz connect-src, bo w tym wariancie żądania fetch i WebSocket nie mają być ograniczane.
  2. Ustalasz wartości. Dla default-src, script-src i style-src wpisujesz 'self'. Dla img-src dodajesz drugą wartość data:, żeby przepuścić obrazy wbudowane w dokument. Dla frame-ancestors wpisujesz 'none'.
  3. Składasz politykę. Powstaje ciąg: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; frame-ancestors 'none'
  4. Liczysz elementy. Masz 5 dyrektyw rozdzielonych 4 średnikami. Łącznie w polityce jest 6 wartości źródeł: 'self' występuje 4 razy, data: raz i 'none' raz, czyli różnych wartości są 3.
  5. Mierzysz długość. Sama wartość nagłówka ma 101 znaków. Razem z nazwą nagłówka i dwukropkiem ze spacją (Content-Security-Policy: ) daje to 125 znaków w jednej linii.
  6. Wdrażasz. Nagłówek trafia do konfiguracji serwera albo do meta http-equiv. Zacznij od trybu Report-Only, przejrzyj raporty i dopiero po wyczyszczeniu naruszeń włącz tryb wymuszający.

Wartości źródeł w dyrektywach — ściągawka

WartośćZnaczenieKiedy stosować
'self'Zasoby z tego samego schematu, hosta i portu co dokumentDomyślny wybór dla skryptów, stylów i obrazów własnych
'none'Blokuje wszystko w danej dyrektywieframe-ancestors przy całkowitym zakazie osadzania
*Dowolne źródło, w tym inne hosty i schematyTylko wyjątkowo, gdy nie da się zawęzić listy
data:Zasoby wbudowane bezpośrednio w dokumentimg-src i font-src przy grafice inline
https://cdn.example.comKonkretny host po HTTPSZewnętrzne biblioteki i pliki statyczne
'unsafe-inline'Dopuszcza skrypty i style zapisane inline w dokumencieOstateczność — wyraźnie osłabia ochronę przed XSS
'nonce-...'Jednorazowy token przypisany do konkretnego bloku skryptuSkrypty inline generowane dynamicznie przez serwer

Jak wdrożyć politykę bez psucia strony

  • Zacznij od trybu Report-Only. W tym trybie nic nie jest blokowane, a przeglądarka jedynie zgłasza naruszenia. Najpierw zbierasz raporty, potem przełączasz politykę na tryb wymuszający — dzięki temu nie stracisz ruchu w pierwszej minucie po wdrożeniu.
  • Buduj politykę od default-src. Jedna dyrektywa domyślna pokrywa wszystkie typy zasobów, których nie opiszesz osobno. Dopisuj script-src, style-src i img-src tylko tam, gdzie potrzebujesz innej listy źródeł niż domyślna.
  • Unikaj 'unsafe-inline'. Ta wartość niweluje większość ochrony przed wstrzyknięciem skryptu. Jeśli musisz dopuścić kod inline, użyj nonce albo skrótu zamiast tej wartości.
  • Porównuj politykę z rzeczywistością. Zanim wpiszesz źródła na sztywno, sprawdź w konsoli przeglądarki, z jakich hostów faktycznie ładują się skrypty, style i obrazy. Lista wpisana z pamięci zwykle różni się od stanu faktycznego.
  • Nie kopiuj polityki ze środowiska testowego. Dev często używa dodatkowych hostów, źródeł inline i luźniejszych ustawień. Politykę produkcyjną składaj osobno i zawężaj ją stopniowo.

Czego narzędzie nie sprawdzi

  • Nie waliduje poprawności polityki. Generator skleja to, co wpiszesz. Literówka w nazwie dyrektywy albo nieznana wartość nie zostanie wychwycona — przeglądarka po prostu zignoruje nieznany element, a polityka będzie słabsza, niż myślisz.
  • Nie analizuje Twojej strony. Narzędzie nie wie, z jakich hostów ładujesz skrypty, style czy obrazy, i nie zaproponuje gotowej listy źródeł. Musisz ją ustalić samodzielnie.
  • Nie generuje nagłówków raportowania. report-uri i report-to nie są częścią wyniku, podobnie jak konfiguracja punktu zbierania raportów. To trzeba dopisać ręcznie po stronie serwera.
  • Nie uwzględnia kontekstu działania. Polityka nie obejmuje Service Workera, ramek zagnieżdżonych ani interakcji z innymi nagłówkami bezpieczeństwa, a narzędzie nie testuje wyniku w żadnej przeglądarce — to nadal Twoja weryfikacja.

Najczęstsze pytania

Czym różni się 'self' od '*'?

'self' oznacza tę samą domenę, a * dowolne źródło. Gwiazdka znosi większość ochrony CSP.

Po co upgrade-insecure-requests?

Wymusza ładowanie zasobów przez HTTPS, nawet jeśli w kodzie podano adresy http://.

Czy CSP zastępuje inne zabezpieczenia?

Nie. To jeden z elementów obrony w głąb — uzupełnia walidację danych, escaping i nagłówki bezpieczeństwa.

Czy CSP można ustawić w meta tagu?

Tak, przez meta http-equiv z nazwą Content-Security-Policy. Ten sposób ma jednak ograniczenia: dyrektywa frame-ancestors jest w tym trybie ignorowana, a raportowanie naruszeń nie działa. Jeśli możesz edytować konfigurację serwera, wybierz nagłówek HTTP.

Czy politykę można bezpiecznie testować trybem Report-Only?

Tak, to najbezpieczniejszy sposób wdrożenia. W trybie raportowania żaden zasób nie jest blokowany, a przeglądarka tylko zgłasza naruszenia. Dopiero gdy raporty staną się puste, warto przełączyć politykę na tryb wymuszający.

Ile dyrektyw powinna mieć polityka CSP?

Nie ma jednej właściwej liczby. Wystarczy default-src plus osobne dyrektywy dla tych typów zasobów, które chcesz ograniczyć inaczej niż domyślnie. Krótsza polityka jest łatwiejsza do utrzymania i rzadziej powoduje przypadkowe blokady.

Dlaczego CSP blokuje moje skrypty z CDN?

Bo hosta tego CDN nie ma na liście dozwolonych źródeł. Wartość 'self' przepuszcza wyłącznie zasoby z tego samego schematu, hosta i portu co dokument. Adres CDN dopisz w script-src.

Czy CSP chroni przed XSS?

Ogranicza go, ale go nie eliminuje. Polityka z 'unsafe-inline' albo miejsce, w którym dane trafiają do już istniejącego skryptu, wciąż zostawiają lukę. CSP jest jedną z warstw obrony, obok walidacji danych i poprawnego kodowania wyjścia.

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