Athari
Mshambulizi anaweza kuiba data nyeti, iliyothibitishwa kutoka kwa watumiaji wa programu hatarishi [S2]. Mtumiaji akitembelea tovuti hasidi akiwa ameingia kwenye programu hatarishi, tovuti hasidi inaweza kutuma maombi ya asili tofauti kwa API ya programu na kusoma majibu [S1][S2]. Hii inaweza kusababisha wizi wa maelezo ya faragha, ikiwa ni pamoja na wasifu wa mtumiaji, tokeni za CSRF, au ujumbe wa faragha [S2].
Chanzo Chanzo
CORS ni utaratibu unaotegemea HTTP-header ambao huruhusu seva kubainisha ni asili zipi (kikoa, mpango, au mlango) zinazoruhusiwa kupakia rasilimali [S1]. Athari za kiusalama kwa kawaida hutokea wakati sera ya CORS ya seva ni rahisi kubadilika au kutekelezwa vibaya [S2]:
- Kichwa Cha Asili Kilichoakisiwa: Baadhi ya seva husoma kichwa cha
Originkutoka kwa ombi la mteja na kukitoa mwangwi katika kichwa cha jibu chaAccess-Control-Allow-Origin(ACAO) [S2]. Hii inaruhusu tovuti yoyote kufikia rasilimali [S2]. - Kadi Pori Zilizowekwa Vibaya: Ingawa kadi-mwitu ya
*inaruhusu asili yoyote kufikia rasilimali, haiwezi kutumika kwa maombi ambayo yanahitaji vitambulisho (kama vile vidakuzi au vichwa vya Uidhinishaji) [S3]. Wasanidi programu mara nyingi hujaribu kukwepa hili kwa kuzalisha kwa nguvu kichwa cha ACAO kulingana na ombi [S2]. - Kuidhinisha 'null': Baadhi ya programu zimeidhinisha asili ya
null, ambayo inaweza kuanzishwa na maombi yaliyoelekezwa kwingine au faili za ndani, kuruhusu tovuti hasidi kujifanya kuwanullasili ili kupata ufikiaji ZXCVFIXVIBETOKEN2ZXZXCVBETOKEN2ZXZXCVBETOK. - Hitilafu za Uchanganuzi: Makosa katika ulinganishaji wa regex au kamba wakati wa kuhalalisha kichwa cha
Origininaweza kuruhusu washambuliaji kutumia vikoa kama viletrusted-domain.com.attacker.com[S2].
Ni muhimu kutambua kwamba CORS sio ulinzi dhidi ya Ughushi wa Ombi la Tovuti Msalaba (CSRF) [S2].
Marekebisho ya Zege
- Tumia Orodha Isiyobadilika: Epuka kutengeneza kichwa cha
Access-Control-Allow-Originkutoka kwa kichwa cha ombiOrigin[S2]. Badala yake, linganisha asili ya ombi dhidi ya orodha yenye misimbo ngumu ya vikoa vinavyoaminika [S3]. - Epuka Asili ya 'null': Usiwahi kujumuisha
nullkatika orodha yako iliyoidhinishwa ya asili zinazoruhusiwa [S2]. - Zuia Kitambulisho: Weka tu
Access-Control-Allow-Credentials: trueikiwa ni lazima kabisa kwa mwingiliano mahususi wa asili mtambuka [S3]. - Tumia Uthibitishaji Sahihi: Iwapo ni lazima utumie asili nyingi, hakikisha kwamba mantiki ya uthibitishaji ya kichwa cha
Originni thabiti na haiwezi kuepukwa na vikoa vidogo au vikoa vinavyofanana [S2].
Jinsi FixVibe inavyoifanyia majaribio
FixVibe sasa inajumuisha hii kama ukaguzi amilifu uliowekwa lango. Baada ya uthibitishaji wa kikoa, active.cors hutuma maombi ya asili moja API yenye asili ya mvamizi sanisi na kukagua vichwa vya majibu CORS. Inaripoti ilionyesha asili zisizo za kawaida, kadi-mwitu iliyoidhinishwa CORS, na CORS isiyo ya umma kwenye ncha zisizo za umma za API huku ikiepuka kelele za mali ya umma.
