HTTP-vastausotsikko Content-Security-Policy antaa sivustolle mahdollisuuden hallita, mitä resursseja käyttäjäagentti lataa tietylle sivulle. Poikkeustapauksia lukuun ottamatta käytännöt perustuvat pääasiassa palvelimen lähde- ja skriptipäätepisteiden määrittelyyn. Tämä auttaa estämään sivustojen välisiä skriptaushyökkäyksiä
Dokumentaatio:Hyperlinkin kirjautuminen on näkyvissä.
Tässä artikkelissa kuvataan W3C:n sisältöturvallisuuspolitiikkaa, lyhyesti CSP:tä. Kuten nimikin kertoo, tämä määrittely liittyy sisällön turvallisuuteen ja sitä käytetään pääasiassa määrittelemään, mitkä resurssit sivu voi ladata ja vähentää XSS:n esiintymistä.
Varhainen Chrome tuki CSP:tä X-WebKit-CSP-vastausotsikon kautta, kun taas Firefox ja IE tukivat X-Content-Security-Policyä, ja Chrome25 sekä Firefox23 alkoivat tukea standardia Content-Security-Policyä.
Arkaluonteisia tietoja verkkosovelluksista, kuten käyttäjätunnuksista, salasanoista, koneen nimistä ja/tai arkaluonteisista tiedostojen sijainnista, voidaan kerätä Aloittelijat saatetaan suostutella antamaan arkaluonteisia tietoja, kuten käyttäjätunnuksia, salasanoja, luottokorttinumeroita, sosiaaliturvatunnuksia jne
Ensiksi luodaan uusi projekti MVC:n ASP.NET, luodaan uusi js-skripti ja ladataan dynaamisesti Baidu-tilastojen js-koodi seuraavasti:
Kuten yllä olevassa kuvassa näkyy, voimme nähdä JS-skriptikoodin, joka on onnistuneesti tuotu kolmannelle osapuolelle (Baidu), jos kolmannen osapuolen JS:ssä on haitallista koodia, kuten evästeiden varastamista, sisällön muokkaamista, linkkien hyppäämistä jne.
Miten voin estää epävarmojen kolmannen osapuolen JS-skriptien käyttöönoton?
Kiertotie
VastejohtoLisää "Sisältöturvallisuuspolitiikka"esimerkiksi:
Direktiivi | Esimerkki käskyarvosta | havainnollistaa | default-src | 'itse' cnd.a.com | Määrittele oletuslatauskäytäntö kaikille resurssityypeille (JS, IMAGE, CSS, WEB FONT, AJAX-pyynnöt, iframet, multimedia jne.), ja käytä oletusta tietyille resurssityypeille, jos erillistä määriteltyä politiikkaa ei ole. | script-src | 'itse' js.a.com | Määrittele JavaScriptille latauskäytäntö. | style-src | 'itse' css.a.com | Määrittele latauspolitiikka tyylille. | img-src | 'itse' img.a.com | Määrittele latauskäytäntö kuville. | connect-src | 'itse' | Käytännöt ladataan pyyntöjä Ajaxista, WebSocketeista jne. Jos sitä ei sallita, selain simuloi vastausta, jonka tila on 400. | font-src | font.a.com | WebFontin latauskäytäntö. | object-src | 'itse' | <object><embed> <applet> Lisäosien, kuten flashin, latauskäytännöt on otettu käyttöön tunnisteille kuten , tai . | media-src | media.a.com | <audio> <video> HTML-multimedian latausstrategiat on esitellä tunnisteille kuten tai . | frame-src | 'itse' | Latauspolitiikka kehyksille. | Hiekkalaatikko | sallitut muodot | Ota käyttöön hiekkalaatikko (samankaltainen kuin iframen hiekkalaatikkoominaisuus) pyydetylle resurssille. | report-uri | /report-uri | Kerro selaimelle, mihin osoitteeseen lokitiedot tulee lähettää, jos pyydetty resurssi ei ole voimassa politiikassa. Erikois: Jos haluat, että selain raportoi vain lokit eikä estä mitään, voit käyttää Content-Security-Policy-Report-Only -otsikkoa. |
Muokataan projektin web.config-tiedostoa lisäämällä mukautettu vastausotsikko seuraavasti:
Toista projekti alla esitetyllä tavalla:
Selain esti onnistuneesti kolmannen osapuolen js-skriptien latauksen:
Kieltäytyi lataamasta skriptiä 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', koska se rikkoo seuraavaa Content Security Policy -direktiiviä: "script-src 'self' http://localhost:56888/ ". Huomaa, että 'script-src-elem' ei ollut nimenomaisesti asetettu, joten 'script-src' on varasuunnitelma. (Loppu)
|