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-ի բացակայությունն է, դուք գտել եք պատճառը։
Ուղղեք ծառայությունը, ոչ թե կիրառումը
Երբ ծառայությունը ձերն է, հստակ նշեք թույլատրված ծագումները և հարցման հնարավորությունները, ապա կարդացեք սխալները, որոնք արտադրում են դրա ճակատային մասը և միջնորդները։ Եթե չեք անում, ուղարկեք ծառայության տիրոջը մաքրված համեմատություն։ Երբեք այդ զեկույցում չներառեք cookie-ներ, լիազորման վերնագրեր կամ սեսիաների արտահանումներ, որովհետև դրանք այն վկայականներն են, որոնց պաշտպանության համար գոյություն ունի քաղաքականությունը։
Խուսափեք զննարկիչի ընդլայնումներից, որոնք անջատում են CORS-ը։ Դրանք փոխում են անվտանգության սահմանը՝ միաժամանակ թաքցնելով պատասխանի տարբերությունը, որը պետք է բացատրվեր, և նույն ձախողումը թողնում են մյուս բոլոր օգտագործողների համար։
Գրանցեք երկու պատասխանները, օգտագործված ծագումը և անցած ուղին։ Այդ գրառումը VPN-ի մասին լուրերը վերածում է ծառայության սխալի։