Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 32621|Atsakyti: 2

[Saugos pažeidžiamumas] Trūksta arba nesaugūs pažeidžiamumai antraštėje "Turinio saugos politika"

[Kopijuoti nuorodą]
Paskelbta 2021-06-11 10:36:39 | | | |
HTTP atsakymo antraštė Content-Security-Policy leidžia svetainei valdyti, kuriuos išteklius vartotojo agentas įkelia tam tikrame puslapyje. Išskyrus ypatingus atvejus, nustatytos strategijos daugiausia apima serverio šaltinio ir scenarijaus galinių taškų nurodymą. Tai padės sustabdyti kelių svetainių scenarijų atakas

Dokumentacija:Hipersaito prisijungimas matomas.

Šiame straipsnyje aprašoma W3C turinio saugos politika arba sutrumpintai CSP. Kaip rodo pavadinimas, ši specifikacija yra susijusi su turinio saugumu ir daugiausia naudojama norint apibrėžti, kokius išteklius puslapis gali įkelti, ir sumažinti XSS atsiradimą.

Ankstyvoji "Chrome" palaikė CSP per "X-WebKit-CSP" atsakymo antraštę, o "Firefox" ir "IE" palaikė "X-Content-Security-Policy", o "Chrome25" ir "Firefox23" pradėjo palaikyti standartinę turinio saugos politiką.

Gali būti renkama slapta informacija apie žiniatinklio programas, pvz., naudotojų vardai, slaptažodžiai, įrenginių pavadinimai ir (arba) slaptos failų vietos
Pradedantieji vartotojai gali būti įtikinti pateikti neskelbtiną informaciją, pvz., vartotojo vardus, slaptažodžius, kredito kortelių numerius, socialinio draudimo numerius ir kt


Pirmiausia sukurkime naują projektą ASP.NET MVC, sukurkime naują js scenarijų ir dinamiškai įkelkime Baidu statistikos js kodą taip:




Kaip parodyta aukščiau esančiame paveikslėlyje, galime pamatyti JS scenarijaus kodą, kuris buvo sėkmingai įvestas į trečiąją šalį ("Baidu"), jei trečiosios šalies JS yra kenkėjiško kodo, pvz., slapukų vagystė, turinio keitimas, nuorodų šokinėjimas ir kt.

Kaip sustabdyti nesaugių trečiųjų šalių JS scenarijų įvedimą?

Sprendimo būdas

Atsako galvutėPridėti "Content-Security-Policy"pavyzdžiui:

Content-Security-Policy: default-src 'self' Hipersaito prisijungimas matomas.;
                         connect-src 'nėra';
Content-Security-Policy: connect-src Hipersaito prisijungimas matomas.
                         scenarijus-srcHipersaito prisijungimas matomas.

Direktyva
Instrukcijos vertės pavyzdys
Iliustruoti
default-src
"Savarankiškai" cnd.a.com
Apibrėžkite numatytąją visų tipų išteklių (JS, IMAGE, CSS, WEB FONT, AJAX užklausų, iframes, multimedijos ir kt.) įkėlimo politiką ir naudokite numatytąją tam tikrų tipų ištekliams, jei nėra atskiros apibrėžtos politikos.
scenarijus-src
"Savarankiškai" js.a.com
Apibrėžkite "JavaScript" įkėlimo politiką.
stilius-src
"Savarankiškai" css.a.com
Apibrėžkite stiliaus įkėlimo strategiją.
img-src
"Savarankiškai" img.a.com
Apibrėžkite vaizdų įkėlimo strategiją.
jungtis-src
"Aš"
Ajax, WebSockets ir kt. užklausų įkėlimo politika. Jei neleidžiama, naršyklė imituoja atsakymą, kurio būsena yra 400.
šriftas-src
font.a.com
WebFont įkėlimo strategija.
objektas-src
"Aš"
<object><embed> <applet> Įskiepių, pvz., "flash", įkėlimo strategijos, įvestos žymoms, pvz., arba .
žiniasklaida-src
media.a.com
<audio> <video> HTML daugialypės terpės įkėlimo strategijos, įvestos žymoms, pvz., arba .
rėmas-src
"Aš"
Rėmelių pakrovimo politika.
smėlio dėžė
leisti formas
Įgalinti smėlio dėžę (panašią į "iframe" smėlio dėžės ypatybę) reikalingam ištekliui.
report-uri
/report-uri
Nurodykite naršyklei, kuriuo adresu pateikti žurnalo informaciją, jei prašomas išteklius neleidžiamas pagal strategiją. Specialus: jei norite, kad naršyklė praneštų tik apie žurnalus ir nieko neblokuotų, galite naudoti antraštę Content-Security-Policy-Report-Only.

Pakeiskime projekto web.config failą, kad pridėtume pasirinktinę atsakymo antraštę taip:

Paleiskite projektą iš naujo, kaip parodyta toliau:



Naršyklė sėkmingai užblokavo trečiųjų šalių js scenarijų įkėlimą:

Atsisakyta įkelti scenarijų "https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319", nes jis pažeidžia šią turinio saugos strategijos direktyvą: "script-src 'self' http://localhost:56888/ ". Atkreipkite dėmesį, kad "script-src-elem" nebuvo aiškiai nustatytas, todėl "script-src" naudojamas kaip atsarginis variantas.
(Pabaiga)




Ankstesnis:ASP.NET MVC HttpApplication vykdymo tvarka
Kitą:Apibendrinant populiarią naršyklės vartotojo agento enciklopediją
Paskelbta 2021-12-17 22:38:43 |
Sužinokite !!!!!!!!!!!!!!
Paskelbta 2022-10-18 17:16:34 |
Ilgai ieškojau ir šiek tiek išmokau
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com