Komencu per disigi du aferojn, kiuj ŝanĝiĝis samtempe: la retvojo kaj la plenumado fare de la retumilo. VPN ŝanĝas la eliran adreson; ĝi ne ŝanĝas la originon de la paĝo, kiu estas konstruata el skemo, gastiganto kaj pordo. Se la peto nun sukcesas, io en la respondo ŝanĝiĝis, aŭ la peto mem ŝanĝiĝis. Eltrovi kiu el la du estas la tuta esploro.

CORS estas kaplinia protokolo plenumata de la retumilo, do nenio sur la retvojo povas malŝalti ĝin.

Origino ne estas IP-adreso

Origino estas skemo, gastiganto kaj pordo. Ĝi ne estas la adreso, el kiu la pakaĵoj foriras, kaj ĝi ne estas la IP, kiun la servilo vidas. Tial VPN povas ŝanĝi ĉiun observeblan adreson kaj lasi la originon identa. La retumilo komparas la Access-Control-Allow-Origin de la respondo kun la origino de la paĝo, kaj la elira adreso neniam eniras tiun komparon.

Do etendaĵo aŭ prokurilo, kiu ŝajnas ripari CORS-eraron, faras ion alian: ĝi reverkas kapliniojn aŭ enkursigas la peton tiel, ke ĝi ne plu estas krucorigina. Nek unu nek la alia estas eco de la VPN.

Kion la retumilo efektive sendas

Por krucorigina peto, kiu ne estas simpla, la retumilo unue sendas antaŭkontrolon OPTIONS, portantan la celatan metodon kaj kapliniojn. La servilo devas respondi per la permesoj, kiujn ĝi permesas, kaj la vera peto sekvas nur se tiu respondo plenumas la regulojn. VPN ŝanĝas la vojon, kiu portas ambaŭ interŝanĝojn, kaj povas ŝanĝi kion respondas la interaj servoj. Ĝi ne ŝanĝas la originan ĉenon nek la postulon de antaŭkontrolo.

Komandlinia kliento kutime montras nenion el tio. Ĝi eble ne sendas kaplinion Origin, ofte preterlasas la antaŭkontrolon, kaj povas porti malsamajn akreditaĵojn. Korpo redonita al curl pruvas, ke la servilo respondis al curl.

Trovu la respondon, kiu ŝanĝiĝis

Komparu la faktan respondon tra ĉiu vojo, ne nur la statusan kodon. Rigardu la kapliniojn portantajn CORS-permesojn, la enhavtipon, ajnan alidirektadon, kaj ĉu WAF aŭ CDN-variaĵo produktis alian paĝon. Regiona rifuzo, aŭtentikiga alidirektado aŭ erarpaĝo sen la permesa kaplinio ĉiuj malsukcesas en la retumilo, dum ili aspektas kiel CORS-eraro. Tiuj estas diferencoj de livera vojo, kaj ili estas la afero dokumentenda.

Registru la respondajn kapliniojn de ambaŭ vojoj kaj komparu ilin linie. Se la sola diferenco estas la mankanta Access-Control-Allow-Origin sur unu erarpaĝo, vi trovis la kaŭzon.

Riparu la servon, ne la plenumadon

Kiam la servo estas via, deklaru eksplicite la permesitajn originojn kaj petajn funkciojn, poste legu la erarojn, kiujn produktas ĝia frontaĵo kaj perantoj. Se vi ne faras tion, sendu al la servposedanto purigitan komparon. Neniam inkluzivu kuketojn, rajtigajn kapliniojn aŭ sesiajn eksportojn en tiu raporto, ĉar tiuj estas la akreditaĵoj, kiujn la politiko ekzistas por protekti.

Evitu retumilajn etendaĵojn, kiuj malŝaltas CORS. Ili ŝanĝas la sekurecan limon, dum ili kaŝas la respondan diferencon klarigendan, kaj ili lasas la saman malsukceson por ĉiu alia uzanto.

Registru ambaŭ respondojn, la uzitan originon kaj la prenitan vojon. Tiu registro transformas onidiron pri VPN en servan eraron.

Rilataj artikoloj