Alustage sellest, et eraldage kaks asja, mis muutusid korraga: võrgutee ja brauseri jõustamine. VPN muudab väljumisaadressi; see ei muuda lehe päritolu, mis koosneb skeemist, hostist ja pordist. Kui päring nüüd õnnestub, on vastuses midagi muutunud või on muutunud päring ise. Selle väljaselgitamine on kogu uurimine.

CORS on päiste protokoll, mida brauser jõustab, seega miski võrguteel ei saa seda välja lülitada.

Päritolu ei ole IP-aadress

Päritolu on skeem, host ja port. See ei ole aadress, kust paketid väljuvad, ja see ei ole IP, mida server näeb. Seetõttu saab VPN muuta iga jälgitavat aadressi ja jätta päritolu samaks. Brauser võrdleb vastuse Access-Control-Allow-Origin väärtust lehe päritoluga ja väljumisaadress ei tule sellesse võrdlusse kunagi.

Nii et laiendus või puhverserver, mis näib CORS-i viga parandavat, teeb midagi muud: kirjutab päiseid ümber või suunab päringu nii, et see ei ole enam ristpäritolu. Kumbki ei ole VPN-i omadus.

Mida brauser tegelikult saadab

Ristpäritolu päringu puhul, mis ei ole lihtne, saadab brauser esmalt eelkontrolli OPTIONS, mis kannab kavandatud meetodit ja päiseid. Server peab vastama lubadega, mida ta lubab, ja tegelik päring järgneb alles siis, kui see vastus vastab reeglitele. VPN muudab teed, mis kannab mõlemat vahetust, ja võib muuta seda, mida vahendusteenused vastavad. See ei muuda päritolu stringi ega eelkontrolli nõuet.

Käsurea klient tavaliselt ei näita sellest midagi. See ei pruugi saata Origin päist, jätab sageli eelkontrolli vahele ja võib kanda teistsuguseid mandaate. curl-ile tagastatud keha tõestab, et server vastas curl-ile.

Leidke vastus, mis muutus

Võrrelge tegelikku vastust igal teel, mitte ainult olekukoodi. Vaadake päiseid, mis kannavad CORS-i lubasid, sisutüüpi, mis tahes ümbersuunamist ja seda, kas WAF-i või CDN-i variant tootis teistsuguse lehe. Piirkondlik keeldumine, autentimise ümbersuunamine või vealeht ilma loa päiseta kukuvad brauseris läbi, näidates samas CORS-i veana. Need on tarne tee erinevused ja just neid tuleb dokumenteerida.

Salvestage vastuse päised mõlemalt teelt ja võrrelge neid rida-realt. Kui ainus erinevus on ühel vealehel puuduv Access-Control-Allow-Origin, olete põhjuse leidnud.

Parandage teenust, mitte jõustamist

Kui teenus on teie oma, märkige lubatud päritolud ja päringu funktsioonid selgelt, seejärel lugege vigu, mida selle esikülg ja vahendajad tekitavad. Kui te seda ei tee, saatke teenuse omanikule puhastatud võrdlus. Ärge kunagi lisage sellesse aruandesse küpsiseid, autoriseerimispäiseid ega sessiooni eksporte, sest need on mandaadid, mille kaitsmiseks poliitika olemas on.

Vältige brauserilaiendusi, mis lülitavad CORS-i välja. Need muudavad turbepiiri, varjates samal ajal vastuse erinevust, mida oli vaja selgitada, ja jätavad sama tõrke püsima kõigi teiste kasutajate jaoks.

Salvestage mõlemad vastused, kasutatud päritolu ja läbitud tee. See kirje muudab VPN-i kuulujutu teenuseveaks.

Seotud artiklid