Eragina
Erasotzaileak [S2] aplikazio zaurgarri baten erabiltzaileei datu sentikorrak eta autentifikatuak lapur ditzake. Erabiltzaile batek webgune kaltegarri bat bisitatzen badu aplikazio zaurgarrian saioa hasita dagoen bitartean, gune gaiztoak jatorri gurutzatutako eskaerak egin ditzake aplikazioaren API eta erantzunak irakurri [S1][S2]. Honek informazio pribatua lapurtzea ekar dezake, erabiltzaileen profilak, CSRF tokenak edo mezu pribatuak [S2] barne.
Arrazoia
CORS HTTP goiburuan oinarritutako mekanismo bat da, zerbitzariek zein jatorri (domeinua, eskema edo ataka) baliabideak kargatzeko baimenduta dauden zehaztea ahalbidetzen duena [S1]. Ahultasunak normalean zerbitzariaren CORS politika malguegia edo gaizki inplementatuta dagoenean sortzen dira [S2]:
- Islatutako jatorriaren goiburua: Zerbitzari batzuek bezeroen eskaera batetik
Origingoiburua irakurtzen dute etaAccess-Control-Allow-Origin(ACAO) erantzunaren goiburuan [S2] errepikatzen dute. Horrek modu eraginkorrean edozein webguneri [S2] baliabidera sartzeko aukera ematen du. - Oker konfiguratutako komodinak:
*komodinak edozein jatorrik baliabide batera atzitzeko aukera ematen duen arren, ezin da erabili kredentzialak behar dituzten eskaeretarako (cookieak edo Baimen-goiburuak adibidez) [S3]. Garatzaileak maiz saiatzen dira hori saihesten, [S2] eskaeran oinarrituta ACAO goiburua dinamikoki sortuz. - Zerrenda zuria 'null': Aplikazio batzuek
nulljatorriaren zerrenda zuria, birbideratutako eskaeren edo fitxategi lokalen bidez abiarazi daitekeena, gune gaiztoeinulljatorria atzitzea ahalbidetzen dietela ZXCVFIXVIBETOKENTOKVIXVIXVIBETOKEN2CVZCV3CV3CVZVZBEN1ZXCV. - Analizatze-erroreak:
Origingoiburua baliozkotzean erregulazio edo kateen bat datozen akatsek erasotzaileektrusted-domain.com.attacker.com[S2] bezalako domeinuak erabil ditzakete.
Garrantzitsua da kontuan izan CORS ez dela guneen arteko eskaera faltsutzearen aurkako babesa (CSRF) [S2].
Konponketa konkretuak
- Erabili zerrenda zuri estatikoa: Saihestu
Access-Control-Allow-Origingoiburua dinamikoki sortzea eskaerarenOrigin[S2] goiburutik. Horren ordez, alderatu eskaeraren jatorria [S3] domeinu fidagarrien zerrenda gogor batekin. - Saihestu "nulua" jatorria: Ez sartu inoiz
nullbaimendutako jatorrien zerrenda zurian [S2]. - Kredentzialak mugatu: Ezarri
Access-Control-Allow-Credentials: truejatorri gurutzatuko elkarrekintza zehatzerako guztiz beharrezkoa bada soilik [S3]. - Erabili baliozkotze egokia: Jatorri anitz onartu behar badituzu, ziurtatu
Origingoiburuaren baliozkotze-logika sendoa dela eta ezin dutela baztertu azpidomeinuek edo antzeko itxura duten domeinuek [S2].
FixVibe probak nola egiten dituen
FixVibe-k kontrol aktibo itxi gisa sartzen du orain. Domeinua egiaztatu ondoren, active.cors-k jatorri bereko API eskaerak bidaltzen ditu erasotzaileen jatorri sintetikoarekin eta CORS erantzunen goiburuak berrikusten ditu. Jatorri arbitrario islatuak, CORS komodin kredentzialak eta CORS publikoak ez diren API amaierako puntuetan irekita dauden CORS, aktibo publikoen zarata saihesten duen bitartean.
