HTTP odpovedná hlavička Content-Security-Policy umožňuje stránke kontrolovať, ktoré zdroje používateľský agent načíta pre danú stránku. Okrem špeciálnych prípadov nastavenie pravidiel zahŕňa najmä špecifikáciu zdrojového a skriptového koncového bodu servera. To pomôže zastaviť útoky skriptovania naprieč lokalitami
Dokumentácia:Prihlásenie na hypertextový odkaz je viditeľné.
Tento článok popisuje politiku bezpečnosti obsahu W3C, skrátene CSP. Ako už názov napovedá, táto špecifikácia súvisí s bezpečnosťou obsahu a používa sa hlavne na definovanie, ktoré zdroje môže stránka načítať, a na zníženie výskytu XSS.
Skorý Chrome podporoval CSP cez X-WebKit-CSP hlavičku odpovede, zatiaľ čo Firefox a IE podporovali X-Content-Security-Policy a Chrome25 a Firefox23 začali podporovať štandardnú Content-Security-Policy.
Môžu byť zhromažďované citlivé informácie o webových aplikáciách, ako sú používateľské mená, heslá, názvy strojov a/alebo citlivé umiestnenia súborov Začiatočníci môžu byť presvedčení, aby poskytli citlivé informácie, ako sú používateľské mená, heslá, čísla kreditných kariet, čísla sociálneho zabezpečenia a podobne
Najprv vytvorme nový projekt ASP.NET MVC, vytvorme nový js skript a dynamicky načítame JS kód štatistík Baidu, nasledovne:
Ako je znázornené na obrázku vyššie, môžeme vidieť kód JS skriptu, ktorý bol úspešne zavedený do tretej strany (Baidu), ak sa v ňom nachádza škodlivý kód, napríklad kradnutie cookies, úprava obsahu, preskakovanie odkazov a podobne.
Ako môžem zastaviť zavádzanie nebezpečných skriptov tretích strán v JS?
Obchádzka
Odpoveďová hlavaPridať "Content-Security-Policy"napríklad:
Smernica | Príklad hodnoty inštrukcie | ilustrovať | default-src | 'ja' cnd.a.com | Definujte predvolenú politiku načítavania pre všetky typy zdrojov (JS, IMAGE, CSS, WEBOVÉ FONTY, AJAX požiadavky, iframes, multimédiá atď.) a použite predvolenú pre určité typy zdrojov, ak neexistuje samostatná definovaná politika. | script-src | 'seba' js.a.com | Definujte načítavaciu politiku pre JavaScript. | Style-SRC | 'seba' css.a.com | Definujte politiku načítavania pre štýl. | IMG-SRC | 'ja' img.a.com | Definujte načítavaciu politiku pre obrázky. | connect-src | 'ja' | Načítavanie politík pre požiadavky z Ajaxu, WebSockets a podobne. Ak to nie je povolené, prehliadač simuluje odpoveď so stavom 400. | Font-SRC | font.a.com | Politika načítavania pre WebFont. | objekt-src | 'ja' | <object><embed> <applet> Načítavacie politiky pre pluginy ako flash boli zavedené pre značky ako , alebo . | MEDIA-SRC | media.a.com | <audio> <video> Stratégie načítavania HTML multimédií zavedené pre značky ako alebo . | Frame-SRC | 'ja' | Politika načítavania pre rámce. | Pieskovisko | Povolené formy | Povolte sandbox (podobne ako sandbox vlastnosť iframe) pre požadovaný zdroj. | Report-uri | /report-uri | Povedzte prehliadaču, na ktorú adresu má odoslať logovacie informácie, ak požadovaný zdroj nie je podľa politiky povolený. Špeciálne: Ak chcete, aby prehliadač hlásil len logy a nič neblokoval, môžete použiť hlavičku Content-Security-Policy-Report-Only. |
Upravme web.config súbor projektu tak, aby sme pridali vlastnú hlavičku odpovede nasledovne:
Zopakujte projekt, ako je uvedené nižšie:
Prehliadač úspešne zablokoval načítanie skriptov tretích strán v JS:
Odmietol načítať skript 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', pretože porušuje nasledujúce smernice Content Security Policy: "script-src 'self' http://localhost:56888/ ". Upozorňujeme, že 'script-src-elem' nebolo explicitne nastavené, takže sa používa 'script-src' ako záložná možnosť. (Koniec)
|