Eyni anda dəyişən iki şeyi ayırmaqla başlayın: şəbəkə yolu və brauzerin tətbiqi. VPN çıxış ünvanını dəyişir; səhifənin mənşəyini dəyişmir, çünki o, sxem, host və portdan qurulur. Əgər sorğu indi uğurludursa, cavabda nəsə dəyişib, ya da sorğunun özü dəyişib. Hansının olduğunu müəyyən etmək bütün araşdırmadır.

CORS brauzerin tətbiq etdiyi başlıq protokoludur, ona görə də şəbəkə yolunda heç nə onu söndürə bilməz.

Mənşə IP ünvanı deyil

Mənşə sxem, host və portdur. Paketlərin çıxdığı ünvan deyil və serverin gördüyü IP deyil. Buna görə VPN müşahidə oluna bilən hər ünvanı dəyişə və mənşəyi eyni saxlaya bilər. Brauzer cavabdakı Access-Control-Allow-Origin dəyərini səhifənin mənşəyi ilə müqayisə edir və çıxış ünvanı bu müqayisəyə heç vaxt daxil olmur.

Beləliklə, CORS xətasını düzəldirmiş kimi görünən genişləndirmə və ya proksi başqa bir şey edir: başlıqları yenidən yazır və ya sorğunu elə yönləndirir ki, artıq çarpaz mənşəli olmasın. Heç biri VPN-in xassəsi deyil.

Brauzer əslində nə göndərir

Sadə olmayan çarpaz mənşəli sorğu üçün brauzer əvvəlcə nəzərdə tutulan metodu və başlıqları daşıyan OPTIONS ön yoxlaması göndərir. Server icazə verdiyi hüquqlarla cavab verməlidir və əsl sorğu yalnız bu cavab qaydaları ödəyəndə davam edir. VPN hər iki mübadiləni daşıyan yolu dəyişir və aralıq xidmətlərin nə cavab verdiyini dəyişə bilər. O, mənşə sətrini və ya ön yoxlama tələbini dəyişmir.

Əmr sətri klienti adətən bunların heç birini göstərmir. O, Origin başlığı göndərməyə bilər, ön yoxlamanı çox vaxt atlayır və fərqli etimadnamələr daşıya bilər. curl-ə qaytarılan cavab cismi serverin curl-ə cavab verdiyini sübut edir.

Dəyişən cavabı tapın

Yalnız status kodunu deyil, hər yoldan keçən faktiki cavabı müqayisə edin. CORS icazələrini daşıyan başlıqlara, məzmun növünə, hər hansı yönləndirməyə və WAF və ya CDN variantının fərqli səhifə yaradıb-yaratmadığına baxın. Regional imtina, autentifikasiya yönləndirməsi və ya icazə başlığı olmayan xəta səhifəsi brauzerdə uğursuz olur, amma CORS xətası kimi görünür. Bunlar çatdırılma yolu fərqləridir və sənədləşdirilməli olan məhz budur.

Hər iki yoldan cavab başlıqlarını tutun və sətir-sətir müqayisə edin. Əgər yeganə fərq bir xəta səhifəsində Access-Control-Allow-Origin başlığının olmamasıdırsa, səbəbi tapmısınız.

Tətbiqi deyil, xidməti düzəldin

Xidmət sizindirsə, icazə verilən mənşələri və sorğu xüsusiyyətlərini açıq şəkildə göstərin, sonra onun frontend-inin və aralıq xidmətlərinin yaratdığı xətaları oxuyun. Bunu etmirsinizsə, xidmət sahibinə təmizlənmiş müqayisə göndərin. Həmin hesabata heç vaxt kukiləri, avtorizasiya başlıqlarını və ya sessiya ixraclarını daxil etməyin, çünki bunlar siyasətin qorumaq üçün mövcud olduğu etimadnamələrdir.

CORS-u söndürən brauzer genişləndirmələrindən çəkinin. Onlar təhlükəsizlik sərhədini dəyişir, izah edilməli olan cavab fərqini gizlədir və eyni uğursuzluğu hər digər istifadəçi üçün yerində qoyur.

Hər iki cavabı, istifadə olunan mənşəyi və gedilən yolu qeyd edin. Bu qeyd VPN söz-söhbətini xidmət xətasına çevirir.

Əlaqəli məqalələr