HTTP-responsheaderen Content-Security-Policy gør det muligt for siden at styre, hvilke ressourcer brugeragenten indlæser for en given side. Undtagen i særlige tilfælde involverer politikkerne hovedsageligt at specificere kilde- og script-endepunkterne for serveren. Dette vil hjælpe med at stoppe cross-site scripting-angreb
Dokumentation:Hyperlink-login er synlig.
Denne artikel beskriver W3C's Content Security Policy, eller CSP for kort. Som navnet antyder, er denne specifikation relateret til indholdssikkerhed og bruges primært til at definere, hvilke ressourcer en side kan indlæse, og reducere forekomsten af XSS.
Tidlige Chrome understøttede CSP via X-WebKit-CSP svarheaderen, mens Firefox og IE understøttede X-Content-Security-Policy, og Chrome25 og Firefox23 begyndte at understøtte den standard Content-Security-Policy.
Følsomme oplysninger om webapplikationer, såsom brugernavne, adgangskoder, maskinnavne og/eller følsomme filplaceringer, kan indsamles Begyndere kan blive overtalt til at oplyse følsomme oplysninger som brugernavne, adgangskoder, kreditkortnumre, personnumre osv
Først opretter vi et nyt projekt ASP.NET MVC, opretter et nyt js-script og indlæser dynamisk js-koden for Baidu-statistikker, som følger:
Som vist i figuren ovenfor kan vi se JS-scriptkoden, der er blevet introduceret med succes i en tredjepart (Baidu), hvis der er skadelig kode i tredjeparts JS, såsom at stjæle cookies, ændre indhold, hoppe links osv.
Hvordan kan jeg stoppe introduktionen af usikre tredjeparts JS-scripts?
Workaround
ResponshovedTilføj "Indhold-Sikkerhedspolitik"for eksempel:
Direktiv | Eksempel på instruktionsværdi | illustrere | default-src | 'selv' cnd.a.com | Definer standardindlæsningspolitikken for alle typer ressourcer (JS, IMAGE, CSS, WEB FONT, AJAX-anmodninger, iframes, multimedier osv.), og brug standardindstillingen for visse typer ressourcer, hvis der ikke findes en separat defineret politik. | script-src | 'selv' js.a.com | Definér en indlæsningspolitik for JavaScript. | Style-SRC | 'selv' css.a.com | Definér en indlæsningspolitik for en stil. | img-src | 'selv' img.a.com | Definer en indlæsningspolitik for billeder. | connect-src | 'selv' | Indlæsningspolitikker for forespørgsler fra Ajax, WebSockets osv. Hvis det ikke er tilladt, simulerer browseren et svar med status 400. | font-src | font.a.com | Indlæsningspolitik for WebFont. | Objekt-SRC | 'selv' | <object><embed> <applet> Indlæsningspolitikker for plugins som flash blev indført for tags som , eller . | Media-SRC | media.a.com | <audio> <video> Indlæsningsstrategier for HTML-multimedier introduceret for tags som eller . | frame-src | 'selv' | Indlæsningspolitik for rammer. | sandkasse | Tilladt-former | Aktivér sandbox (svarende til sandbox-egenskaben for en iframe) for den ønskede ressource. | Report-uri | /report-uri | Fortæl browseren, hvilken adresse loginformationen skal sendes til, hvis den anmodede ressource ikke er tilladt af politikken. Speciel: Hvis du vil have browseren til kun at rapportere logfiler og ikke blokere noget, kan du bruge headeren Indhold-Sikkerhed-Politik-Rapport-Kun i stedet. |
Lad os ændre projektets web.config-fil for at tilføje en brugerdefineret svarheader som følger:
Gentag projektet som vist nedenfor:
Browseren blokerede med succes indlæsningen af tredjeparts js-scripts:
Nægtede at indlæse scriptet 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', fordi det overtræder følgende Content Security Policy-direktiv: "script-src 'self' http://localhost:56888/ ". Bemærk, at 'script-src-elem' ikke blev sat eksplicit, så 'script-src' bruges som en backup. (Slut)
|