HTTP atbildes galvene Content-Security-Policy ļauj vietnei kontrolēt, kurus resursus lietotāja aģents ielādē konkrētajā lapā. Izņemot īpašus gadījumus, politikas kopums galvenokārt ietver servera avota un skripta beigu punktu norādīšanu. Tas palīdzēs apturēt starpvietņu skriptēšanas uzbrukumus
Dokumentācija:Hipersaites pieteikšanās ir redzama.
Šajā rakstā ir aprakstīta W3C satura drošības politika jeb saīsināti CSP. Kā norāda nosaukums, šī specifikācija ir saistīta ar satura drošību un galvenokārt tiek izmantota, lai definētu, kurus resursus lapa var ielādēt, un samazinātu XSS rašanos.
Agrīnā Chrome atbalstīja CSP, izmantojot X-WebKit-CSP atbildes galveni, savukārt Firefox un IE atbalstīja X-Content-Security-Policy, un Chrome25 un Firefox23 sāka atbalstīt standarta satura drošības politiku.
Var tikt apkopota sensitīva informācija par tīmekļa lietojumprogrammām, piemēram, lietotājvārdi, paroles, datoru nosaukumi un/vai sensitīvas failu atrašanās vietas Iesācējus lietotājus var pārliecināt sniegt sensitīvu informāciju, piemēram, lietotājvārdus, paroles, kredītkaršu numurus, sociālās apdrošināšanas numurus utt
Pirmkārt, izveidosim jaunu projektu ASP.NET MVC, izveidosim jaunu js skriptu un dinamiski ielādēsim Baidu statistikas js kodu šādi:
Kā parādīts iepriekš redzamajā attēlā, mēs varam redzēt JS skripta kodu, kas ir veiksmīgi ieviests trešajā pusē (Baidu), ja trešās puses JS ir kāds ļaunprātīgs kods, piemēram, sīkdatņu zagšana, satura modificēšana, saišu pārlēkšana utt.
Kā apturēt nedrošu trešo pušu JS skriptu ieviešanu?
Risinājums
Atbildes galvaPievienot "Satura-drošības-politika", piemēram:
Direktīva | Instrukcijas vērtības piemērs | Ilustrētu | noklusējums-src | "Pats" cnd.a.com | Definējiet noklusējuma ielādes politiku visu veidu resursiem (JS, IMAGE, CSS, WEB FONT, AJAX pieprasījumi, iframes, multivide utt.) un izmantojiet noklusējumu noteiktiem resursu veidiem, ja nav atsevišķas definētas politikas. | skripts-src | "Pats" js.a.com | Definējiet JavaScript ielādes politiku. | stils-src | "Pats" css.a.com | Stila ielādes politikas definēšana. | IMG-SRC | "Pats" img.a.com | Definējiet attēlu ielādes politiku. | savienot-src | "Pats" | Ielādes politikas pieprasījumiem no Ajax, WebSockets utt. Ja tas nav atļauts, pārlūkprogramma simulē atbildi ar statusu 400. | fonts-src | font.a.com | WebFont ielādes politika. | objekts-src | "Pats" | <object><embed> <applet> Ielādes politikas spraudņiem, piemēram, zibatmiņai, kas ieviestas tādiem tagiem kā , vai . | mediji-src | media.a.com | <audio> <video> HTML multivides ielādes stratēģijas, kas ieviestas tādiem tagiem kā vai . | rāmis-src | "Pats" | Rāmju ielādes politika. | smilšu kaste | atļaut veidlapas | Iespējot smilškasti (līdzīgi iframe smilškastes rekvizītam) pieprasītajam resursam. | report-uri | /report-uri | Norādiet pārlūkprogrammai, kurā adresē iesniegt žurnāla informāciju, ja pieprasītais resurss nav atļauts saskaņā ar politiku. Īpašs: ja vēlaties, lai pārlūkprogramma ziņotu tikai par žurnāliem un neko nebloķētu, varat izmantot galveni Content-Security-Policy-Report-Only. |
Modificēsim projekta failu web.config, lai pievienotu pielāgotu atbildes galveni, kā norādīts tālāk.
Atkārtoti palaidiet projektu, kā parādīts tālāk.
Pārlūkprogramma veiksmīgi bloķēja trešo pušu js skriptu ielādi:
Atteicās ielādēt skriptu "https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319", jo tas pārkāpj šādu satura drošības politikas direktīvu: "script-src 'self' http://localhost:56888/ ". Ņemiet vērā, ka 'script-src-elem' nebija skaidri iestatīts, tāpēc 'script-src' tiek izmantots kā rezerve. (Beigas)
|