In VPN kin CORS net útskeakelje, it feroaret it antwurd
In nij útgongsadres makket net twa oarsprongen itselde. Fêstlêzje de antwurdkoppen op beide paden en fergelykje se foardat jo CORS syn hanthavening de skuld jouwe.
Begjin mei twa dingen te skieden dy’t tagelyk feroare binne: it netwurkpaad en de hanthavening fan de browser. In VPN feroaret it útgongsadres; it feroaret net de oarsprong fan de side, dy’t út skema, host en poarte bestiet. As it fersyk no slagget, is der eat yn it antwurd feroare, of it fersyk sels is feroare. Utfine hokker fan beide is it hiele ûndersyk.
CORS is in koptekstprotokol dat de browser hanthavet, dus kin neat op it netwurkpaad it útskeakelje.
Oarsprong is gjin IP-adres
In oarsprong is in skema, in host en in poarte. It is net it adres dêr’t pakketten wei geane, en it is net it IP dat de tsjinner sjocht. Dêrom kin in VPN elk waarnimber adres feroarje en de oarsprong identyk litte. De browser fergeliket de Access-Control-Allow-Origin fan it antwurd mei de oarsprong fan de side, en it útgongsadres komt nea yn dy fergeliking.
Dus in útwreiding of in proxy dy’t liket dat er in CORS-flater reparearret, docht wat oars: it skriuwt koppen oer of rûtelet it fersyk sa dat it net mear krús-oarsprong is. Net ien fan beide is in eigenskip fan de VPN.
Wat de browser eins stjoert
Foar in krús-oarsprongfersyk dat net ienfâldich is, stjoert de browser earst in foarôfgeande kontrôle OPTIONS, mei de bedoelde metoade en koppen. De tsjinner moat antwurdzje mei de tastimmingen dy’t er tastiet, en it echte fersyk folget allinnich as dat antwurd de regels foldocht. In VPN feroaret it paad dat beide útwikselings draacht en kin feroarje wat tuskenlizzende tsjinsten antwurdzje. It feroaret net de oarsprongstring of de eask fan de foarôfgeande kontrôle.
In kommandorigel-klant lit dêr meastal neat fan sjen. Hy stjoert miskien gjin Origin-kop, slacht faak de foarôfgeande kontrôle oer, en kin oare bewiisstikken drage. In lichem dat oan curl weromjûn wurdt, bewiist dat de tsjinner curl antwurde hat.
Fyn it antwurd dat feroare is
Fergelykje it werklike antwurd fia elk paad, net allinnich de statuskoade. Sjoch nei de koppen dy’t CORS-tastimmingen drage, it ynhâldstype, elke trochferwizing, en oft in WAF- of CDN-fariant in oare side makke hat. In regionale wegering, in autentikaasjetrochferwizing of in flaterside sûnder de tastimmingskop mislearje allegear yn de browser wylst se op in CORS-flater lykje. Dat binne ferskillen yn it leveringspaad, en dat is wat dokumintearre wurde moat.
Fêstlêzje de antwurdkoppen fan beide paden en fergelykje se rigel foar rigel. As it iennige ferskil de ûntbrekkende Access-Control-Allow-Origin op ien flaterside is, hawwe jo de oarsaak fûn.
Reparearje de tsjinst, net de hanthavening
As de tsjinst fan jo is, neam dan de tastiene oarsprongen en fersykfunksjes eksplisyt, en lês dan de flaters dy’t syn frontend en tuskenpersoanen produsearje. As jo dat net dogge, stjoer de tsjinst-eigner dan in suvere fergeliking. Nim nea cookies, autorisaasjekoppen of sesje-eksporten yn dat rapport op, want dat binne de bewiisstikken dy’t it belied bestiet om te beskermjen.
Mij browserútwreidingen dy’t CORS útskeakelje. Se feroarje de feiligensgrins wylst se it antwurdferskil ferbergje dat ferklearre wurde moast, en se litte deselde mislearring foar elke oare brûker stean.
Fêstlêzje beide antwurden, de brûkte oarsprong en it nommen paad. Dat ferslach makket fan in VPN-gerucht in tsjinstflater.