Hlavička HTTP odpovědi Content-Security-Policy umožňuje webu kontrolovat, které zdroje uživatelský agent načítá pro danou stránku. Kromě výjimečných případů se nastavení politik hlavně týká specifikace zdrojového a skriptového koncového bodu serveru. To pomůže zastavit útoky skriptování napříč webem
Dokumentace:Přihlášení k hypertextovému odkazu je viditelné.
Tento článek popisuje politiku bezpečnosti obsahu W3C, zkráceně CSP. Jak název napovídá, tato specifikace souvisí s bezpečností obsahu a používá se především k definování, které zdroje může stránka načítat, a ke snížení výskytu XSS.
Raný Chrome podporoval CSP přes hlavičku X-WebKit-CSP pro odpověď, zatímco Firefox a IE podporovaly X-Content-Security-Policy a Chrome25 a Firefox23 začaly podporovat standardní Content-Security-Policy.
Mohou být shromažďovány citlivé informace o webových aplikacích, jako jsou uživatelská jména, hesla, názvy strojů a/nebo citlivé umístění souborů Začátečníci mohou být přesvědčeni, aby poskytli citlivé informace, jako jsou uživatelská jména, hesla, čísla kreditních karet, čísla sociálního zabezpečení atd
Nejprve vytvoříme nový projekt ASP.NET MVC, vytvoříme nový js skript a dynamicky načtěme js kód Baidu statistik, následovně:
Jak je znázorněno na obrázku výše, můžeme vidět kód JS skriptu, který byl úspěšně zaveden do třetí strany (Baidu), pokud se v tom JS nachází nějaký škodlivý kód, například krádež cookies, úprava obsahu, přeskakování odkazů atd.
Jak mohu zastavit zavádění nezabezpečených skriptů třetích stran pro JS?
Řešení
Hlava reakcePřidat "Obsah-Bezpečnost-Politika"například:
Směrnice | Příklad hodnoty instrukce | ilustrovat | default-src | 'Já' cnd.a.com | Definujte výchozí politiku načítání pro všechny typy zdrojů (JS, IMAGE, CSS, WEBOVÉ FONTY, AJAX požadavky, iframes, multimedia atd.) a použijte výchozí pro určité typy zdrojů, pokud neexistuje samostatná definovaná politika. | script-src | 'já' js.a.com | Definujte načítací politiku pro JavaScript. | Style-SRC | 'já' css.a.com | Definujte načítací politiku pro styl. | IMG-SRC | 'já' img.a.com | Definujte politiku načítání obrázků. | Connect-SRC | 'já' | Načítání politik pro požadavky z Ajaxu, WebSockets atd. Pokud není povoleno, prohlížeč simuluje odpověď se stavem 400. | Font-SRC | font.a.com | Pravidla načítání WebFontu. | Object-SRC | 'já' | <object><embed> <applet> Načítací politiky pro pluginy, jako je flash, byly zavedeny pro tagy jako , nebo . | MEDIA-SRC | media.a.com | <audio> <video> Strategie načítání pro HTML multimédia zavedené pro značky jako nebo . | Frame-SRC | 'já' | Politika načítání snímků. | Sandbox | Povolené formy | Povolte sandbox (podobně jako vlastnost sandbox v iframe) pro požadovaný zdroj. | Report-uri | /report-uri | Řekněte prohlížeči, na kterou adresu má odesílat logovací informace, pokud požadovaný zdroj není podle politiky povolen. Speciál: Pokud chcete, aby prohlížeč hlásil pouze logy a nic neblokoval, můžete použít hlavičku Content-Security-Policy-Report-Only. |
Upravme web.config soubor projektu tak, aby přidal vlastní hlavičku odpovědi následovně:
Znovu spusťte projekt podle níže:
Prohlížeč úspěšně zablokoval načítání skriptů třetích stran pro js:
Odmítl načíst skript 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', protože porušuje následující směrnice Content Security Policy: "script-src 'self' http://localhost:56888/ ". Všimněte si, že 'script-src-elem' nebylo explicitně nastaveno, takže 'script-src' se používá jako záložní řešení. (Konec)
|