Generátor CSP — zásady zabezpečení obsahu s upozorněními na nebezpečná místa
Generátor CSP
Zaškrtněte směrnice a zdroje a tato stránka sestaví správnou jednořádkovou hlavičku Content-Security-Policy pro vaši odpověď nebo značku <meta> — plus poznámky, na kterých záleží: které směrnice nikdy nepřecházejí na default-src, kdy hash nebo nonce tiše přepíše unsafe-inline a co vypíná strict-dynamic. Vestavěný generátor hashů SHA-256/384/512 promění vložené skripty a styly ve zdroje 'sha256-…'. Vše běží ve vašem prohlížeči; nic se nenahrává.
Směrnice pro načítání — odkud smí obsah pocházet
Nezaškrtnuté směrnice se v zásadách prostě neobjeví; zaškrtnutí bez vybraných zdrojů se ignoruje. 'none' zruší ostatní políčka ve svém řádku. Pole další zdroje přijímá seznam oddělený čárkami: názvy hostitelů (cdn.example.com), schémata (https:), hashe a nonce, se záložními uvozovkami i bez nich.
směrnice
'self'
'none'
'unsafe-inline'
'unsafe-eval'
'strict-dynamic'
data:
blob:
další zdroje
Dokumentové směrnice — co smí samotná stránka dělat
U těchto čtyř se nepřechází na default-src: když je vynecháte, znamená to „bez omezení“, takže úplná zásada je nastavuje výslovně.
směrnice
'self'
'none'
další zdroje
Přepínače, nonce a hlášení
nonce skriptu
report-uri
report-to
Zásady
Zatím nic není sestaveno. Zaškrtněte nějaké zdroje a stiskněte Sestavit zásady, nebo načtěte ukázku základu OWASP.
Generátor hashů pro vložené skripty a styly
Vložte přesný obsah mezi <script> a </script> (nebo blok stylů) — bajt po bajtu, bez úvodního či koncového nového řádku — a vyberte algoritmus. Výsledkem je zdroj 'sha256-…', který CSP 3 očekává.
Výstup hashe se zobrazí zde.
Nasazujte jako hlavičku, ne jako značku meta, kdykoli můžete. Hlavička odpovědi je úplné CSP: frame-ancestors, report-uri a report-to fungují jen tam a hlavička se použije dřív, než se přečte první bajt HTML. Značka meta je záložní řešení pro statické soubory bez konfigurace serveru. Hlavičky, které váš web skutečně posílá, zkontrolujte na kontrole bezpečnostních hlaviček a surové bloky odpovědí rozeberte v analyzátoru HTTP hlaviček.
Autotest Znovu spustí sestavení proti pevným stavům: pořadí zdrojů, vzájemné vylučování 'none', řetězec základu OWASP, uvozování nonce a hashů, poznámky o chybějícím přechodu pro base-uri / form-action / frame-ancestors, unsafe-inline přepsané nonce nebo hashem, poznámky strict-dynamic, názvy hlaviček Report-Only, vyloučení značek meta, generátor hashů proti nezávisle spočítaným vektorům SHA a negativní cesty. Nic se nikam neodesílá.
Co je Content Security Policy?
Ve větě: CSP je seznam povolených zdrojů, který server posílá spolu se stránkou a který prohlížeči přesně říká, odkud smějí přicházet skripty, styly, obrázky a spojení — takže i když útočník vloží HTML, vložený skript se nenačte, protože jeho zdroj na seznamu není.
kam se posílají hlášení o porušení a upgrade starých adres
ne (nejsou to směrnice pro načítání)
Nejostřejší hrany, po jednom odstavci
'unsafe-inline' versus hashe a nonce. Pokud směrnice obsahuje nonce nebo jakýkoli zdroj hash, CSP 3 říká, že 'unsafe-inline' se ignoruje — zůstává tam jen pro velmi staré prohlížeče. Proto věta „přidali jsme nonce a pro jistotu jsme ponechali unsafe-inline“ ve skutečnosti znamená, že moderní prohlížeče vynucují nonce. Generátor tuto kombinaci označuje, aby šlo o rozhodnutí, ne o náhodu.
strict-dynamic vypíná váš seznam povolených. Když je v script-srcstrict-dynamic, hostitelské zdroje, schémata, 'self', 'unsafe-inline' a data: se pro skripty ignorují; rozhodují jen nonce a hashe a skripty, které načtou, mohou načítat další skripty. Je to moderní způsob, jak spouštět načítací skripty — ale zbytek seznamu script-src se tím stává jen dekorací.
Značky meta jsou druhořadé.frame-ancestors, report-uri a report-to se v <meta http-equiv> ignorují. Generátor ukazuje, které části vaší zásady by se tiše neuplatnily.
Časté chyby
Začít s default-src * a dlouhým seznamem výjimek. Postupujte opačně: přísné default-src 'self' a rozšiřte jen směrnice, které to potřebují. Úzké zásady při testování hlasitě selhávají; široké selhávají tiše navždy.
Nasadit script-src 'unsafe-inline' 'unsafe-eval' a prohlásit to za hotové. Taková zásada blokuje téměř nic z toho, co útok XSS chce dělat. Dejte skriptům nonce nebo hash, přidejte strict-dynamic a v produkci nechte běžet report-only, aby zachytil regrese.
Zapomenout, že default-src nepokrývá všechno.base-uri, form-action, frame-ancestors a sandbox nemají záložní hodnotu — nejčastěji citovaná mezera v reálných nasazeních CSP.
Nejdřív testovat v režimu vynucení. Spusťte v Report-Only se sběračem na týden, přečtěte hlášení a teprve pak zapněte vynucování. Zásada, která rozbije pokladnu, je horší než žádná zásada.
Hashování mezer jinak. Hash pokrývá přesné bajty vloženého bloku; „užitečný“ build krok, který ořeže koncové nové řádky, změní každý hash. Hashe generujte z toho, co se skutečně nasazuje, ne ze zdrojového kódu.
Časté dotazy
Potřebuji default-src, když vypíšu všechny směrnice? Ne, ale jako základ je to dobrý zvyk: nové směrnice pro načítání v budoucích prohlížečích se pak řídí vaším základem místo výchozího stavu „povoleno“.
Co přesně dělá upgrade-insecure-requests? Říká prohlížeči, aby každou adresu http://, kterou by stránka načetla — obrázky, styly, požadavky — přepsal na https://, ještě než ji požádá. Je to nástroj pro migraci; konečným stavem jsou stránky bez jediné adresy http://.
Nonce, nebo hash? Nonce, když řídíte odpověď serveru (náhodná hodnota pro každou odpověď, v hlavičce i u každé značky skriptu). Hash, když je HTML statické nebo kešované. Nikdy statický nonce — nonce, které se nemění, je jen unsafe-inline s navíc krokem.
Proč zásada dorazí, ale hlášení o porušení nepřicházejí? Zkontrolujte, zda jste v režimu Report-Only (pouze hlášení), zda report-uri ukazuje na sběrač, který přijímá POST, a zda jste také nastavili mechanismus Reporting-Endpoints / Report-To, který moderní směrnice report-to vyžaduje.
Nahrazuje CSP jiné ochrany? Ne. Je to jen jedna vrstva: dál escapujte výstup, cookies nechte za HttpOnly a Secure, ponechte HSTS. Kontrola bezpečnostních hlaviček na tomto webu ohodnotí celou sadu.