Začnite z ločevanjem dveh stvari, ki sta se spremenili hkrati: omrežne poti in uveljavljanja v brskalniku. VPN spremeni izhodni naslov; ne spremeni izvora strani, ki ga sestavljajo shema, gostitelj in vrata. Če zahteva zdaj uspe, se je nekaj v odgovoru spremenilo ali pa se je spremenila sama zahteva. Ugotoviti, kaj od tega, je cela preiskava.

CORS je protokol glav, ki ga uveljavlja brskalnik, zato nič na omrežni poti tega ne more izklopiti.

Izvor ni naslov IP

Izvor je shema, gostitelj in vrata. To ni naslov, s katerega odhajajo paketi, in ni IP, ki ga vidi strežnik. Zato lahko VPN spremeni vsak opazovani naslov in pusti izvor nespremenjen. Brskalnik primerja Access-Control-Allow-Origin odgovora z izvorom strani, izhodni naslov pa nikoli ne vstopi v to primerjavo.

Zato razširitev ali proxy, ki se zdi, da popravlja napako CORS, počne nekaj drugega: prepisuje glave ali usmerja zahtevo tako, da ni več medizvorna. Nobeno od tega ni lastnost VPN.

Kaj brskalnik v resnici pošlje

Pri medizvorni zahtevi, ki ni preprosta, brskalnik najprej pošlje predhodno preverjanje OPTIONS, ki nosi predvideno metodo in glave. Strežnik mora odgovoriti z dovoljenji, ki jih daje, in prava zahteva sledi le, če ta odgovor ustreza pravilom. VPN spremeni pot, ki nosi obe izmenjavi, in lahko spremeni, kaj odgovorijo vmesne storitve. Ne spremeni niza izvora ali zahteve predhodnega preverjanja.

Odjemalec ukazne vrstice običajno ne pokaže ničesar od tega. Morda ne pošlje glave Origin, pogosto preskoči predhodno preverjanje in lahko nosi druga poverilnice. Telo, vrnjeno curl-u, dokazuje, da je strežnik odgovoril curl-u.

Poiščite odgovor, ki se je spremenil

Primerjajte dejanski odgovor na vsaki poti, ne le kode stanja. Poglejte glave, ki nosijo dovoljenja CORS, vrsto vsebine, vsako preusmeritev in ali je različica WAF ali CDN ustvarila drugo stran. Regionalna zavrnitev, preusmeritev prijave ali stran z napako brez glave dovoljenja vse propadejo v brskalniku, čeprav so videti kot napaka CORS. To so razlike v poti dostave in prav te je treba dokumentirati.

Zabeležite glave odgovora z obeh poti in jih primerjajte vrstico za vrstico. Če je edina razlika manjkajoča Access-Control-Allow-Origin na eni strani z napako, ste našli vzrok.

Popravite storitev, ne uveljavljanja

Ko je storitev vaša, izrecno navedite dovoljene izvore in zmožnosti zahteve, nato preberite napake, ki jih ustvarita njen čelni del in posredniki. Če tega ne storite, pošljite lastniku storitve očiščeno primerjavo. Nikoli v to poročilo ne vključite piškotkov, glav za avtorizacijo ali izvozov sej, ker so to poverilnice, zaradi katerih politika sploh obstaja.

Izogibajte se razširitvam brskalnika, ki izklopijo CORS. Spremenijo varnostno mejo, medtem ko skrivajo razliko v odgovoru, ki jo je bilo treba razložiti, in pustijo isto napako za vse druge uporabnike.

Zabeležite oba odgovora, uporabljeni izvor in prehojeno pot. Ta zapis spremeni govorice o VPN v napako storitve.

Sorodni članki