Do czego służy CSP
Content-Security-Policy to nagłówek odpowiedzi HTTP, który informuje przeglądarkę, z jakich źródeł mogą być ładowane poszczególne typy zasobów: skrypty, arkusze stylów, obrazy, fonty, połączenia sieciowe i inne.
Przed czym chroni
- XSS (Cross-Site Scripting) - blokuje wykonanie skryptów z nieautoryzowanych źródeł,
- Clickjacking - w połączeniu z X-Frame-Options,
- Data injection - ogranicza ładowanie zasobów z obcych domen,
- Mixed content - wymusza HTTPS dla wszystkich zasobów.
Kluczowe dyrektywy
default-src- domyślna polityka dla wszystkich typów zasobów,script-src- skąd mogą być ładowane skrypty,style-src- skąd mogą być ładowane style,img-src- skąd mogą być ładowane obrazy,connect-src- do jakich adresów mogą być wysyłane żądania AJAX/fetch,frame-ancestors- kto może osadzić stronę w iframe,object-src- kontrola nad Flash, applet i innymi pluginami.
Przykład restrykcyjnej polityki
Polityka default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; object-src 'none' pozwala ładować zasoby wyłącznie z własnej domeny, blokuje inline skrypty (bez nonce/hash) i całkowicie wyłącza pluginy.
CSP a zewnętrzne zasoby
Każdy zewnętrzny skrypt (np. Google Analytics, czaty, widgety social media) wymaga jawnego dodania jego domeny do polityki CSP. Im więcej zewnętrznych skryptów, tym bardziej rozluźniona polityka - i tym mniejsza skuteczność ochrony.