# Content-Security-Policy (CSP)

> Content-Security-Policy (CSP) je HTTP hlavička so zoznamom zdrojov, z ktorých smie stránka načítať skripty, štýly, obrázky a rámce. Je hlavnou obranou proti XSS.

- **Číslo kontroly:** SEC3
- **Oblasť:** [Bezpečnosť](https://be1st.ai/sk/glossary/security)
- **Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit)
- **Stránka:** https://be1st.ai/sk/glossary/security/content-security-policy-csp

## Prečo na tom záleží

XSS je jednou z najčastejších webových zraniteľností. Útočník dokáže vložiť škodlivý JavaScript, ktorý ukradne cookies, presmeruje na phishingový web alebo zmení obsah stránky. CSP zabraňuje spusteniu neautorizovaných skriptov tým, že presne definuje povolené zdroje.

## V praxi

Cloudflare.com používa striktné CSP s pravidlom script-src 'self', ktoré povolí len skripty z vlastnej domény. Ak útočník vloží externý skript z cudzej domény, prehliadač ho zablokuje, lebo daná doména nie je v povolenom zozname.

## Ako to be1st kontroluje

Kontrola prítomnosti HTTP hlavičky Content-Security-Policy, ktorá definuje, z akých zdrojov môže prehliadač načítať skripty, štýly, obrázky a ďalšie zdroje. CSP je najúčinnejšia obrana proti XSS (Cross-Site Scripting) útokom.

[SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit), záložka Bezpečnosť.

Každá kontrola skončí ako: V poriadku, Varovanie, Chyba.

## Zdroje

- [Content-Security-Policy (CSP) header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy) (MDN)
- [Content Security Policy Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html) (OWASP)

## Súvisiace pojmy

- [X-Frame-Options](https://be1st.ai/sk/glossary/security/x-frame-options): X-Frame-Options je HTTP hlavička, ktorá určuje, či iné weby smú vložiť vašu stránku do rámca. Chráni návštevníkov pred clickjackingom.
- [X-Content-Type-Options](https://be1st.ai/sk/glossary/security/x-content-type-options): X-Content-Type-Options: nosniff je HTTP hlavička, ktorá prehliadaču zakáže hádať typ súboru, takže súbor sa nespustí ako niečo iné, než ako ho server poslal.
- [Referrer-Policy](https://be1st.ai/sk/glossary/security/referrer-policy): Referrer-Policy je HTTP hlavička, ktorá určuje, akú časť aktuálnej URL pošle prehliadač iným webom, keď návštevník klikne na odkaz alebo sa načíta zdroj.
- [Permissions-Policy](https://be1st.ai/sk/glossary/security/permissions-policy): Permissions-Policy je HTTP hlavička, ktorá stránke a jej rámcom zapne alebo vypne funkcie prehliadača, napríklad kameru, mikrofón alebo polohu.
- [Zmiešaný obsah (mixed content)](https://be1st.ai/sk/glossary/security/mixed-content): Zmiešaný obsah sú zdroje, napríklad obrázky alebo skripty, ktoré HTTPS stránka načítava cez nešifrované HTTP. Prehliadače ich blokujú alebo označia.
- [Bezpečnostné varovania (security warnings)](https://be1st.ai/sk/glossary/security/security-warnings): Bezpečnostné varovania sú správy, ktoré prehliadač zapíše do konzoly, keď na stránke nájde bezpečnostný problém, napríklad zablokovaný zdroj alebo chybné pravidlo.
