impak
'n Aanvaller kan sensitiewe, geverifieerde data van gebruikers van 'n kwesbare toepassing [S2] steel. As 'n gebruiker 'n kwaadwillige webwerf besoek terwyl hy by die kwesbare toepassing aangemeld is, kan die kwaadwillige werf kruisoorsprongversoeke na die toepassing se API rig en die antwoorde [S1][S2] lees. Dit kan lei tot die diefstal van privaat inligting, insluitend gebruikersprofiele, CSRF-tokens, of privaat boodskappe [S2].
Oorsaak
CORS is 'n HTTP-kop-gebaseerde meganisme wat bedieners toelaat om te spesifiseer watter oorsprong (domein, skema of poort) toegelaat word om hulpbronne [S1] te laai. Kwesbaarhede ontstaan tipies wanneer 'n bediener se CORS-beleid te buigsaam of swak geïmplementeer is [S2]:
- Gereflekteerde Oorsprongopskrif: Sommige bedieners lees die
Origin-opskrif vanaf 'n kliëntversoek en eggo dit terug in dieAccess-Control-Allow-Origin(ACAO)-antwoordopskrif [S2]. Dit laat effektief enige webwerf toe om toegang tot die hulpbron [S2] te verkry. - Werklik gekonfigureerde jokertekens: Alhoewel die
*jokerteken enige oorsprong toelaat om toegang tot 'n hulpbron te kry, kan dit nie gebruik word vir versoeke wat geloofsbriewe (soos koekies of magtigingsopskrifte) vereis nie [S3]. Ontwikkelaars probeer dit dikwels omseil deur die ACAO-opskrif dinamies te genereer gebaseer op die versoek [S2]. - Witlys 'nul': Sommige toepassings witlys die
null-oorsprong, wat deur herlei versoeke of plaaslike lêers geaktiveer kan word, wat toelaat dat kwaadwillige werwe as 'nnull-oorsprong voordoen om toegang te verkry ZXCVIXVIBETOKEN2ZVFXCVIZ. - Ontleedfoute: Foute in regex of stringpassing wanneer die
Origin-kopskrif bekragtig word, kan aanvallers toelaat om domeine soostrusted-domain.com.attacker.com[S2] te gebruik.
Dit is belangrik om daarop te let dat CORS nie 'n beskerming teen Cross-Site Request Forgery (CSRF) [S2] is nie.
Betonoplossings
- Gebruik 'n statiese witlys: Vermy die dinamiese generering van die
Access-Control-Allow-Origin-opskrif vanaf die versoek seOrigin-opskrif [S2]. Vergelyk eerder die versoek se oorsprong met 'n hardgekodeerde lys van vertroude domeine [S3]. - Vermy die 'nul' Oorsprong: Moet nooit
nullby jou witlys van toegelate oorsprong [S2] insluit nie. - Beperk geloofsbriewe: Stel slegs
Access-Control-Allow-Credentials: trueas dit absoluut noodsaaklik is vir die spesifieke kruisoorsprong-interaksie [S3]. - Gebruik behoorlike validering: As jy veelvuldige oorspronge moet ondersteun, maak seker dat die valideringslogika vir die
Origin-kopskrif robuust is en nie deur subdomeine of domeine wat soortgelyk lyk nie [S2] omseil kan word nie.
Hoe FixVibe daarvoor toets
FixVibe sluit dit nou as 'n omheinde aktiewe tjek in. Na domeinverifikasie stuur active.cors dieselfde-oorsprong API-versoeke met 'n sintetiese aanvalleroorsprong en hersien CORS-reaksieopskrifte. Dit rapporteer weerspieël arbitrêre oorsprong, wildcard-geloofwaardige CORS, en wyd-oop CORS op nie-openbare API eindpunte terwyl openbare bate geraas vermy word.
