Zrób inwentaryzację zasobów
Spisz domeny, z których strona pobiera skrypty, style, obrazy, fonty i ramki. Uwzględnij CAPTCHA, logowanie oraz połączenia WebSocket. Wklejenie przypadkowej restrykcyjnej polityki może zepsuć działający proces bez usunięcia przyczyny podatności. CSP jest dodatkową warstwą ochrony, a nie zamiennikiem bezpiecznego generowania HTML.
Najpierw obserwuj
Dla etapu testowego poniższy nagłówek ilustruje kierunek polityki. Dopasuj go do swojej aplikacji. W trybie Report-Only przeglądarka raportuje naruszenia, ale ich nie blokuje; samo istnienie takiego nagłówka nie dowodzi egzekwowania ograniczeń.
Content-Security-Policy-Report-Only: default-src 'self'; object-src 'none'; base-uri 'self'Komunikaty sprawdzisz w konsoli i, po konfiguracji, w systemie raportowania. Raporty mogą zawierać adresy stron i zasobów. Jeżeli je zapisujesz, ogranicz dane, dostęp oraz okres przechowywania i uwzględnij to w rzeczywistym opisie prywatności.
Testuj scenariusze, nie tylko stronę główną
- Logowanie, wylogowanie i dodatkowe potwierdzenia konta.
- Formularze z komunikatami błędów i CAPTCHA.
- Osadzone materiały, pobieranie plików i połączenia aplikacji.
- PL/EN, oba motywy oraz widoki mobilne.
Po uporządkowaniu naruszeń wdrażaj egzekwowaną politykę Content-Security-Policy etapami. Jeśli używasz nonce, musi być generowany poprawnie dla odpowiedzi i uzgodniony ze skryptami. Stały nonce wpisany raz do wszystkich dokumentów nie daje zamierzonej ochrony.
Pozostałe nagłówki dobieraj osobno
X-Content-Type-Options: nosniff pomaga egzekwować deklarowany typ treści, więc upewnij się, że serwer podaje poprawne MIME. HSTS wymaga działającego HTTPS; długi okres, objęcie wszystkich subdomen i preload mają szersze skutki niż pojedynczy test. Polityki osadzania i uprawnień również sprawdzaj z używanymi integracjami. Zachowaj kontrolowaną możliwość wycofania zmian.
Źródła i dokumentacja
Odnośniki do źródeł pozwalają sprawdzić daty, dostępność oraz pełny kontekst informacji.