W tym artykule
Czym jest walidacja CSP?
Walidacja Content Security Policy (CSP) sprawdza, czy nagłówek CSP lub meta tag poprawnie definiuje, jakie zasoby przeglądarka może wczytywać. Błędnie skonfigurowana CSP może albo blokować legalne zasoby, psując witrynę, albo być zbyt permisywna, pozostawiając luki bezpieczeństwa.
CSP jest jednym z najpotężniejszych mechanizmów bezpieczeństwa przeglądarki przeciwko atakom XSS i wstrzyknięciom danych. Jednak składnia dyrektyw jest złożona, a jedno źle umieszczone słowo kluczowe może fundamentalnie zmienić to, co polityka zezwala.
Jak działa walidator CSP
Walidator CSP CheckTown analizuje ciąg Twojej polityki i sprawdza błędy składni, zagrożenia bezpieczeństwa oraz typowe błędy konfiguracji.
- Parsowanie dyrektyw — weryfikuje każdą nazwę dyrektywy i jej wartości źródłowe zgodnie ze specyfikacją CSP
- Analiza bezpieczeństwa — oznacza zbyt permisywne źródła, takie jak unsafe-inline, unsafe-eval i domeny z symbolami wieloznacznymi
- Ostrzeżenia o przestarzałych elementach — identyfikuje przestarzałe dyrektywy i sugeruje ich nowoczesne zamienniki
Wypróbuj za darmo — bez rejestracji
Zwaliduj swoją CSP →Kluczowe dyrektywy CSP
CSP używa dyrektyw do kontrolowania, jakie typy zasobów mogą być ładowane i skąd.
- default-src — polityka rezerwowa dla wszystkich typów zasobów nieobsługiwanych przez bardziej szczegółowe dyrektywy
- script-src — kontroluje, które skrypty mogą być wykonywane; najważniejsza dyrektywa do zapobiegania XSS
- style-src — definiuje dozwolone źródła dla arkuszy stylów CSS i stylów wbudowanych
Kiedy używać walidacji CSP
Walidacja CSP jest niezbędna przed wdrożeniem jakichkolwiek zmian w nagłówkach bezpieczeństwa.
- Tworzenie polityki — waliduj reguły CSP podczas pisania, aby wychwycić błędy składni przed wdrożeniem
- Audyty bezpieczeństwa — sprawdzaj istniejące nagłówki CSP pod kątem zbyt permisywnych konfiguracji
- Potoki CI — automatyzuj walidację CSP jako część procesu wdrożeniowego
Często zadawane pytania
Co oznacza unsafe-inline i kiedy jest potrzebny?
unsafe-inline pozwala na wykonywanie skryptów i stylów wbudowanych. Znacznie osłabia ochronę przed XSS, ale jest czasem potrzebny przy starszym kodzie. Preferuj listy dozwolonych oparte na nonce lub hashu jako alternatywy.
Czy CSP może zepsuć moją witrynę?
Tak. Zbyt restrykcyjna CSP zablokuje legalne zasoby, od których zależy Twoja witryna. Zawsze najpierw testuj nowe polityki w trybie report-only przy użyciu Content-Security-Policy-Report-Only przed ich egzekwowaniem.
Czy powinienem używać meta tagów CSP czy nagłówków HTTP?
Nagłówki HTTP są preferowane, ponieważ obsługują wszystkie dyrektywy i nie mogą być modyfikowane przez wstrzyknięty kod. Meta tagi nie obsługują dyrektyw frame-ancestors i report-uri.