VPN не може да искључи CORS, он мења одговор
Нова излазна адреса не чини два порекла истим. Забележите заглавља одговора на оба пута и упоредите их пре него што окривите примену CORS-а.
Почните раздвајањем две ствари које су се промениле истовремено: мрежног пута и примене у прегледачу. VPN мења излазну адресу; не мења порекло странице, које се састоји од шеме, хоста и порта. Ако захтев сада успева, нешто се у одговору променило или се променио сам захтев. Утврдити шта је од тога цела је истрага.
CORS је протокол заглавља који примењује прегледач, па ништа на мрежном путу не може га искључити.
Порекло није IP адреса
Порекло је шема, хост и порт. То није адреса с које пакети излазе и није IP који сервер види. Зато VPN може променити сваку видљиву адресу, а порекло оставити истим. Прегледач пореди Access-Control-Allow-Origin из одговора с пореклом странице, а излазна адреса никада не улази у то поређење.
Зато додатак или прокси који изгледа као да поправља CORS грешку ради нешто друго: преписује заглавља или усмерава захтев тако да више није унакрсног порекла. Ни једно ни друго није својство VPN-а.
Шта прегледач заправо шаље
За захтев унакрсног порекла који није једноставан, прегледач најпре шаље претходну проверу OPTIONS с намераваном методом и заглављима. Сервер мора одговорити дозволама које допушта, а прави захтев следи само ако тај одговор задовољава правила. VPN мења пут који носи обе размене и може променити шта одговарају посредничке услуге. Не мења низ порекла ни захтев за претходном провером.
Клијент из командне линије обично не показује ништа од тога. Можда не шаље заглавље Origin, често прескаче претходну проверу и може носити друкчије акредитиве. Тело враћено curl-у доказује да је сервер одговорио curl-у.
Пронађите одговор који се променио
Упоредите стварни одговор кроз сваки пут, не само статусни код. Погледајте заглавља која носе CORS дозволе, тип садржаја, свако преусмеравање и да ли је варијанта WAF-а или CDN-а произвела друкчију страницу. Регионално одбијање, преусмеравање на пријаву или страница грешке без заглавља дозволе падају у прегледачу, а изгледају као CORS грешка. То су разлике у путу доставе и управо њих треба документовати.
Забележите заглавља одговора с оба пута и упоредите их ред по ред. Ако је једина разлика недостатак Access-Control-Allow-Origin на једној страници грешке, пронашли сте узрок.
Поправите услугу, не примену
Кад је услуга ваша, изричито наведите дозвољена порекла и могућности захтева, па прочитајте грешке које производе његов фронтенд и посредници. Ако то не учините, пошаљите власнику услуге очишћено поређење. Никада у тај извештај не стављајте колачиће, заглавља ауторизације ни извоз сесија, јер су то акредитиви које политика постоји да заштити.
Избегавајте додатке за прегледач који искључују CORS. Они мењају безбедносну границу, а крију разлику у одговору коју је требало објаснити, и остављају исти неуспех за сваког другог корисника.
Забележите оба одговора, коришћено порекло и пређени пут. Тај запис претвара VPN гласину у грешку услуге.