Бір уақытта өзгерген екі нәрсені ажыратудан бастаңыз: желі жолы және браузердің орындауы. VPN шығу мекенжайын өзгертеді; ол беттің шығу тегін өзгертпейді, ол схема, хост және порттан тұрады. Егер сұраныс қазір сәтті болса, жауапта бірдеңе өзгерді немесе сұраныстың өзі өзгерді. Қайсысы екенін анықтау — бүкіл зерттеу.

CORS — браузер орындайтын тақырып хаттамасы, сондықтан желі жолындағы ешнәрсе оны өшіре алмайды.

Шығу тегі IP мекенжайы емес

Шығу тегі — схема, хост және порт. Ол пакеттер шығатын мекенжай емес және сервер көретін IP емес. Сондықтан VPN кез келген бақыланатын мекенжайды өзгертіп, шығу тегін сол күйінде қалдыра алады. Браузер жауаптағы Access-Control-Allow-Origin мәнін беттің шығу тегімен салыстырады, ал шығу мекенжайы бұл салыстыруға ешқашан кірмейді.

Сондықтан CORS қатесін түзететін сияқты көрінетін кеңейтім немесе прокси басқа нәрсе жасайды: тақырыптарды қайта жазады немесе сұранысты енді шығу тегі бойынша айқас болмайтындай бағыттайды. Екеуі де VPN қасиеті емес.

Браузер нақты нені жібереді

Қарапайым емес шығу тегі бойынша айқас сұраныс үшін браузер алдымен ниет етілген әдіс пен тақырыптарды алып жүретін алдын ала тексеру OPTIONS жібереді. Сервер рұқсат ететін рұқсаттарымен жауап беруі керек, ал нақты сұраныс тек сол жауап ережелерге сай болса ғана жалғасады. VPN екі алмасуды да тасымалдайтын жолды өзгертеді және аралық қызметтердің нені жауап беретінін өзгерте алады. Ол шығу тегі жолын немесе алдын ала тексеру талабын өзгертпейді.

Пәрмен жолының клиенті әдетте мұның ешқайсысын көрсетпейді. Ол Origin тақырыбын жібермеуі мүмкін, алдын ала тексеруді жиі өткізіп жібереді және өзге тіркелгі деректерін алып жүруі мүмкін. curl-ге қайтарылған дене сервердің curl-ге жауап бергенін дәлелдейді.

Өзгерген жауапты табыңыз

Тек күй кодын емес, әр жолдағы нақты жауапты салыстырыңыз. CORS рұқсаттарын алып жүретін тақырыптарға, мазмұн түріне, кез келген қайта бағыттауға және WAF немесе CDN нұсқасы басқа бет жасағанына назар аударыңыз. Аймақтық бас тарту, аутентификация қайта бағыттауы немесе рұқсат тақырыбы жоқ қате бетінің бәрі браузерде сәтсіз болады, бірақ CORS ақауына ұқсайды. Бұл жеткізу жолының айырмашылықтары, және дәл солар құжатталуы керек.

Екі жолдың жауап тақырыптарын жазып алып, жол бойынша салыстырыңыз. Егер жалғыз айырмашылық бір қате бетінде Access-Control-Allow-Origin жоқтығы болса, себебін таптыңыз.

Орындауды емес, қызметті түзетіңіз

Қызмет сіздікі болса, рұқсат етілген шығу тегін және сұраныс мүмкіндіктерін анық айтыңыз, содан кейін оның фронтенді мен делдалдары шығаратын қателерді оқыңыз. Олай жасамасаңыз, қызмет иесіне тазартылған салыстыру жіберіңіз. Бұл есепке ешқашан cookie файлдарын, рұқсат беру тақырыптарын немесе сессия экспортын қоспаңыз, өйткені саясат сол тіркелгі деректерін қорғау үшін бар.

CORS-ты өшіретін браузер кеңейтімдерінен аулақ болыңыз. Олар қауіпсіздік шекарасын өзгертіп, түсіндіруге тиіс жауап айырмашылығын жасырады және сол сәтсіздікті қалған барлық пайдаланушы үшін қалдырады.

Екі жауапты, пайдаланылған шығу тегін және жүріп өткен жолды жазып алыңыз. Сол жазба VPN туралы қауесетті қызмет ақауына айналдырады.

Қатысты мақалалар