AĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŹŻ
Bezpieczeństwo

Content Security Policy (CSP)

Opublikowano: · Aktualizacja:

Content Security Policy (CSP) to mechanizm bezpieczeństwa przeglądarki sterowany nagłówkiem HTTP Content-Security-Policy, w którym witryna deklaruje dozwolone źródła zasobów: skryptów, stylów, obrazów, fontów czy połączeń sieciowych. Przeglądarka blokuje wszystko, co nie mieści się w polityce.

CSP to główna warstwa obrony w głębi (defense in depth) przed atakami XSS — nawet jeśli napastnik wstrzyknie kod do strony, polityka uniemożliwi jego wykonanie. Dyrektywy takie jak frame-ancestors chronią też przed clickjackingiem, zastępując starszy nagłówek X-Frame-Options.

Kluczowe dyrektywy

  • default-src — domyślna polityka dla wszystkich typów zasobów.
  • script-src / style-src — źródła skryptów i stylów; nowoczesne polityki używają nonce lub hashy zamiast list domen.
  • frame-ancestors — kto może osadzić stronę w iframe (ochrona przed clickjackingiem).
  • report-to / report-uri — raportowanie naruszeń polityki do wskazanego endpointu.

Jak wdrażać bezpiecznie

Zacznij od trybu Content-Security-Policy-Report-Only, który tylko raportuje naruszenia bez blokowania, przeanalizuj raporty i dopiero potem egzekwuj politykę. Unikaj 'unsafe-inline' i szerokich whitelist — rekomendowany kierunek to strict CSP oparty na nonce z 'strict-dynamic'.

Przykład

Polityka startowa w trybie Report-Only — pozwala zebrać naruszenia bez blokowania skryptów na produkcji.

Nagłówek HTTP (Report-Only)
HTTP
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self' 'nonce-abc123' 'strict-dynamic'; style-src 'self' 'nonce-abc123'; report-uri /csp-report
Skrypt z nonce pasującym do polityki
HTML
<script nonce="abc123" src="/app.js"></script>

Źródła i dalsza lektura

Sprawdź publiczne sygnały bezpieczeństwa

Insight analizuje nagłówki, TLS i inne widoczne sygnały — bez obietnicy pentestu.

Bez karty kredytowej Raport z datą i źródłami Bez zakładania konta