HTTP odgovorna glava Content-Security-Policy omogoča strani nadzor, katere vire uporabniški agent naloži za določeno stran. Razen v posebnih primerih pravila večinoma vključujejo določanje izvorne in skriptne končne točke strežnika. To bo pomagalo preprečiti napade s skriptiranjem med različnimi lokacijami
Dokumentacija:Prijava do hiperpovezave je vidna.
Ta članek opisuje politiko varnosti vsebin W3C, na kratko CSP. Kot že ime pove, je ta specifikacija povezana z varnostjo vsebin in se predvsem uporablja za določanje, katere vire lahko stran naloži ter za zmanjšanje pojavljanja XSS.
Zgodnji Chrome je podpiral CSP preko X-WebKit-CSP glave odziva, medtem ko sta Firefox in IE podpirala X-Content-Security-Policy, Chrome25 in Firefox23 pa sta začela podpirati standardno Content-Security-Policy.
Zbrane so lahko občutljive informacije o spletnih aplikacijah, kot so uporabniška imena, gesla, imena strojev in/ali občutljive lokacije datotek Začetnike je mogoče prepričati, da posredujejo občutljive podatke, kot so uporabniška imena, gesla, številke kreditnih kartic, številke socialnega zavarovanja itd
Najprej ustvarimo nov projekt ASP.NET MVC, ustvarimo nov js skript in dinamično naložimo js kodo Baidu statistike, kot sledi:
Kot je prikazano na zgornji sliki, lahko vidimo kodo JS skripte, ki je bila uspešno uvedena v tretjo osebo (Baidu), če je v JS-ju tretje osebe prisotna zlonamerna koda, kot so kraja piškotkov, spreminjanje vsebine, preskakovanje povezav itd.
Kako lahko ustavim uvajanje nevarnih JS skript tretjih oseb?
Rešitev
Odzivna glavaDodaj "Vsebina-Varnost-Politika"na primer:
Direktiva | Primer vrednosti ukaza | Ponazoritev | default-src | 'jaz' cnd.a.com | Določite privzeto politiko nalaganja za vse vrste virov (JS, IMAGE, CSS, WEB FONT, AJAX zahteve, iframes, multimedia itd.) in uporabite privzeto za določene vrste virov, če ni ločene definirane politike. | script-src | 'jaz' js.a.com | Določite politiko nalaganja za JavaScript. | Style-SRC | 'jaz' css.a.com | Določite politiko nalaganja za določen slog. | IMG-SRC | 'jaz' img.a.com | Določite politiko nalaganja za slike. | connect-src | 'jaz' | Nalaganje politik za zahteve iz Ajaxa, WebSockets itd. Če ni dovoljeno, brskalnik simulira odgovor s statusom 400. | FONT-SRC | font.a.com | Politika nalaganja za WebFont. | object-src | 'jaz' | <object><embed> <applet> Politike nalaganja za vtičnike, kot je flash, so uvedle oznake, kot so , ali . | MEDIA-SRC | media.a.com | <audio> <video> Strategije nalaganja za HTML multimedijo uvedene za oznake, kot sta ali . | Frame-SRC | 'jaz' | Politika nalaganja za okvirje. | Peskovnik | Dovoljene oblike | Omogočite peskovnik (podobno kot lastnost peskovnika v iframe-u) za zahtevani vir. | Poročilo-uri | /report-uri | Povejte brskalniku, na kateri naslov naj pošlje podatke o dnevniku, če zahtevani vir ni dovoljen po pravilih. Posebno: Če želite, da brskalnik poroča le o dnevnikih in ne blokira ničesar, lahko uporabite glavo Content-Security-Policy-Report-Only. |
Spremenimo datoteko web.config projekta in dodamo prilagojeno glavo odziva, kot sledi:
Ponovno zaženi projekt, kot je prikazano spodaj:
Brskalnik je uspešno blokiral nalaganje JS skript tretjih oseb:
Zavrnil je nalaganje skripte 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', ker krši naslednjo direktivo politike varnosti vsebine: "script-src 'self' http://localhost:56888/ ". Upoštevajte, da 'script-src-elem' ni bil eksplicitno nastavljen, zato se 'script-src' uporablja kot rezervno možnost. (Konec)
|