Narzędzia CometWeb
Generator CSP
Zbuduj Content-Security-Policy · lokalnie w przeglądarce
Bez uwag — polityka wygląda solidnie.
Content-Security-Policy: default-src 'self';
script-src 'self';
style-src 'self';
img-src 'self' data:;
font-src 'self';
connect-src 'self';
frame-ancestors 'none';
form-action 'self';
base-uri 'self';
object-src 'none';
upgrade-insecure-requestsGenerator CSP składa nagłówek Content-Security-Policy z wybranych dyrektyw i wskazuje wartości, które realnie osłabiają politykę: niecytowane słowa kluczowe, unsafe-inline w skryptach, gwiazdkę i brakujące dyrektywy obronne. Ocenia treść polityki, nie stronę — czy strona się pod nią załaduje, powie tylko przeglądarka.
Co osłabia politykę CSP?
Apostrofy nie są kosmetyką. script-src self i script-src 'self' to dwie różne polityki: pierwsza dopuszcza host o nazwie „self”, którego nie ma, więc realnie blokuje wszystko albo nic — zależnie od reszty. To najczęstszy cichy błąd w CSP.
unsafe-inline w script-src znosi sens polityki. CSP chroni głównie przed wykonaniem wstrzykniętego skryptu inline; dopuszczenie ich z powrotem zostawia tę furtkę otwartą. Jeśli nie da się inaczej, użyj nonce albo hasha — wtedy nowoczesne przeglądarki i tak zignorują unsafe-inline.
Trzy dyrektywy są łatwe do pominięcia i warte dodania: base-uri zamyka wstrzyknięcie znacznika base, frame-ancestors zastępuje X-Frame-Options, a object-src 'none' odcina stary wektor przez wtyczki.
Narzędzie przegląda tekst polityki. Czy Twoja strona się pod nią załaduje, zależy od tego, co realnie pobiera — sprawdź to trybem Report-Only, zanim włączysz politykę na twardo.
Najpierw obserwuj naruszenia
Przygotuj politykę dla zasobów faktycznie używanych przez stronę. Przetestuj ją na środowisku testowym jako Content-Security-Policy-Report-Only. Przejdź logowanie, formularze, płatności i integracje; sam widok strony głównej nie wystarczy.
MDN · Content Security Policy ↗Elementy polityki
- ''Słowa kluczowe
- 'self', 'none', 'unsafe-inline' wymagają apostrofów. Bez nich są czytane jako nazwy hostów.
- NNonce
- Jednorazowy token na znaczniku script. Obecność nonce unieważnia unsafe-inline w nowoczesnych przeglądarkach.
- FAframe-ancestors
- Kto może osadzić Twoją stronę w ramce. Nowoczesny odpowiednik X-Frame-Options.
- ROReport-Only
- Polityka zgłasza naruszenia, ale niczego nie blokuje. Sposób na bezpieczne wdrożenie.
Uzupełnij dyrektywy, których potrzebujesz — albo zacznij od polityki bazowej — i skopiuj gotowy nagłówek. Narzędzie na bieżąco wskazuje wartości osłabiające politykę i dyrektywy obronne, których brakuje. Wszystko liczy się lokalnie w przeglądarce.
Bo bez nich przeglądarka czyta to jako nazwę hosta. script-src self dopuszcza serwer o nazwie „self”, a nie własne pochodzenie strony — polityka nadal działa, tylko znaczy coś innego niż zamierzone.
Częściowo. Zapis <meta http-equiv> działa dla większości dyrektyw, ale frame-ancestors, report-uri, report-to i sandbox są w nim ignorowane — i to po cichu. Dlatego generator usuwa je z wersji meta i wypisuje, czego zabrakło.
Od trybu Report-Only. Polityka zgłasza wtedy naruszenia, nie blokując niczego, więc zobaczysz, co realnie by się zepsuło, zanim włączysz ją na twardo.
Nie. Przegląda treść polityki, którą tu zbudujesz. Czy Twoja strona załaduje się pod nią, zależy od zasobów, które pobiera — to rozstrzyga przeglądarka, najlepiej w trybie Report-Only.
Co jeszcze może Ci się przydać
TLS, nagłówki, cookies i ekspozycja — z rozkładem wyniku i planem naprawy.