Effaith
Gall ymosodwr ddwyn data sensitif, dilys gan ddefnyddwyr cymhwysiad bregus [S2]. Os yw defnyddiwr yn ymweld â gwefan faleisus tra wedi mewngofnodi i'r app bregus, gall y wefan faleisus wneud ceisiadau traws-darddiad i API yr app a darllen yr ymatebion [S1][S2]. Gall hyn arwain at ddwyn gwybodaeth breifat, gan gynnwys proffiliau defnyddwyr, tocynnau CSRF, neu negeseuon preifat [S2].
Achos Gwraidd
Mae CORS yn fecanwaith sy'n seiliedig ar bennawd HTTP sy'n caniatáu i weinyddion nodi pa wreiddiau (parth, cynllun, neu borthladd) y caniateir iddynt lwytho adnoddau [S1]. Mae gwendidau fel arfer yn codi pan fo polisi CORS gweinydd yn rhy hyblyg neu wedi'i weithredu'n wael [S2]:
- Pennawd Tarddiad a Adlewyrchir: Mae rhai gweinyddion yn darllen y pennawd
Origino gais cleient ac yn ei adleisio yn ôl ym mhennawd ymatebAccess-Control-Allow-Origin(ACAO) [S2]. Mae hyn i bob pwrpas yn caniatáu i unrhyw wefan gael mynediad at yr adnodd [S2]. - Cardiau Gwyllt wedi'u Camgyflunio: Er bod y cerdyn gwyllt
*yn caniatáu i unrhyw darddiad gael mynediad i adnodd, ni ellir ei ddefnyddio ar gyfer ceisiadau sy'n gofyn am gymwysterau (fel cwcis neu benawdau Awdurdodi) [S3]. Mae datblygwyr yn aml yn ceisio osgoi hyn trwy gynhyrchu pennawd ACAO yn ddeinamig yn seiliedig ar y cais [S2]. - Rhestr wen 'null': Mae rhai rhaglenni'n rhestru'r tarddiad
nullar restr wen, a all gael ei sbarduno gan geisiadau wedi'u hailgyfeirio neu ffeiliau lleol, sy'n caniatáu i wefannau maleisus guddio fel tarddiadnulli gael mynediad ZXCVFIXVIBETOKEN2ZVENXCVCV. - Gwallau Dosrannu: Gall camgymeriadau mewn regex neu baru llinynnau wrth ddilysu'r pennawd
Originganiatáu i ymosodwyr ddefnyddio parthau feltrusted-domain.com.attacker.com[S2].
Mae'n bwysig nodi nad yw CORS yn amddiffyniad yn erbyn Ffugio Cais Traws-Safle (CSRF) [S2].
Atgyweiriadau Concrit
- Defnyddiwch Rhestr Wen Statig: Osgowch gynhyrchu'r pennawd
Access-Control-Allow-Originyn ddeinamig o bennawdOriginy cais [S2]. Yn lle hynny, cymharwch darddiad y cais yn erbyn rhestr cod caled o barthau dibynadwy [S3]. - Osgoi'r Tarddiad 'nwl': Peidiwch byth â chynnwys
nullyn eich rhestr wen o wreiddiau a ganiateir [S2]. - Cyfyngu ar y Manylion: Gosodwch
Access-Control-Allow-Credentials: truedim ond os yw'n gwbl angenrheidiol ar gyfer y rhyngweithiad traws-darddiad penodol [S3]. - Defnyddiwch Ddilysiad Priodol: Os oes rhaid i chi gefnogi tarddiad lluosog, sicrhewch fod y rhesymeg ddilysu ar gyfer y pennawd
Originyn gadarn ac ni ellir ei osgoi gan is-barthau neu barthau tebyg eu golwg [S2].
Sut mae FixVibe yn ei brofi
Mae FixVibe bellach yn cynnwys hwn fel gwiriad gweithredol â gatiau. Ar ôl dilysu parth, mae active.cors yn anfon ceisiadau API o'r un tarddiad â tharddiad ymosodwr synthetig ac yn adolygu penawdau ymateb CORS. Mae'n adrodd yn adlewyrchu gwreiddiau mympwyol, cerdyn gwyllt wedi'i ardystio CORS, a CORS agored eang ar bwyntiau terfyn API nad ydynt yn gyhoeddus tra'n osgoi sŵn asedau cyhoeddus.
