CORS тексеру құралы

Қойылған жауап белгілі бір шолғыштың шығу тегіне, әдісіне және сұрау тақырыптарына рұқсат беретінін тексеріңіз.

Тексеруге жауап
Ұшу алдындағы жауапты тексеру кезінде де күй жолын қойыңыз.
Origin тақырыбында жіберілген схема, хост және қосымша порт.
Cookie файлдары немесе HTTP аутентификациясы бар сұраулар үшін қосыңыз.
Браузер шешімі

    Талданған қол жеткізу-басқару өрістері

    HTTP status
    Access-Control-Allow-Origin
    Access-Control-Allow-Credentials
    Access-Control-Allow-Methods
    Access-Control-Allow-Headers
    Access-Control-Expose-Headers
    Access-Control-Max-Age

    Жауап пен сұрау мәліметтерін енгізіңіз, содан кейін CORS саясатын тексеріңіз.

    CORS саясатын тексеру үшін жауапты қойыңыз.

    Тақырыптар мен сұрау мәліметтері браузерде қалады. BroBroGo арқылы ештеңе жүктеп салынбайды немесе сақталмайды.

    Жиі қойылатын сұрақтар

    Мен нақты жауапты немесе ұшу алдындағы жауапты қоюым керек пе?

    Браузер коды бір жауапты оқи алатынын тексеру үшін Нақты жауапты пайдаланыңыз. Кейінгі әдісті және оның сұралған тақырып атауларын бекітетін OPTIONS жауабы үшін алдын ала ұшу жауабын пайдаланыңыз.

    Неліктен қойылмалы таңба тіркелгі деректерімен сәтсіздікке ұшырауы мүмкін?

    Cookie файлдары немесе HTTP аутентификациясы қосылғанда, рұқсат етілген бастау сұраушы түпнұсқаға дәл сәйкес келуі керек. Рұқсат етілген әдістер мен тақырыптарға арналған қойылмалы таңбалар да қойылмалы таңба мағынасын жоғалтады.

    Өтпелі нәтиже тікелей сұраудың жұмыс істейтінін дәлелдей ме?

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

    CORS саясатын түсіну және тексеру

    Cross-Origin Resource Sharing (CORS) — заманауи веб-шолғыштардағы қауіпсіздікті қамтамасыз ететін маңызды механизм. Ол бір веб-бастаудан (origin) жіберілген сұраулардың басқа бастаудағы ресурстарға қол жеткізе алуын бақылайды. Әзірлеушілер жиі кездесетін CORS қателіктерін шешу үшін HTTP жауап тақырыптары мен сұрау параметрлерін мұқият сәйкестендіруі қажет.

    Бұл құрал веб-шолғыштың нақты HTTP жауап тақырыптары негізінде кросс-домендік сұрауға рұқсат беретінін немесе бермейтінін анықтауға көмектеседі. Құрал сервермен байланыс орнатпайды, сыртқы URL мекенжайларын оқымайды, cookie файлдарын орнатпайды және DNS немесе TLS параметрлерін тексермейді. Сондай-ақ ол сервер конфигурациясын өзгертпейді. Тексеру толығымен пайдаланушының шолғышында орындалады.

    Құралдың кіріс параметрлері

    Тексеруді бастау үшін келесі параметрлерді енгізу қажет:

    • Тексеруге жауап: Пайдаланушы "Нақты жауап" немесе "Ұшу алдындағы жауап" нұсқаларының бірін таңдайды.
    • HTTP жауап тақырыптары: Серверден қайтарылған HTTP жауап тақырыптарын енгізуге арналған мәтіндік өріс. Ұшу алдындағы жауаптарды тексеру кезінде күй жолын (мысалы, HTTP/1.1 200 OK) қоса енгізу қажет. Мәтіннің ең көп шегі — 200 000 таңба. Егер бұл өріс бос болса, "Тексермес бұрын HTTP жауап тақырыптарын қойыңыз." деген қате көрсетіледі. Егер енгізілген мәтін тым үлкен болса, "Бұл жауап әдеттен тыс үлкен. Оны ‹max› таңбалары астында сақтаңыз." қатесі шығады. Жарамсыз жолдар үшін "‹line› жолы жарамды HTTP тақырыбы немесе күй жолы емес." немесе "‹line› жолында жарамсыз HTTP тақырыбы атауы бар." деген хабарламалар беріледі.
    • Түпнұсқаны сұрау: Сұрау жіберілетін бастаудың схемасы, хосты және қосымша порты (мысалы, https://app.example.com). Мұнда тек таза бастау немесе null мәні қабылданады; URL жолы, сұрау параметрлері немесе тіркелгі деректері болмауы тиіс. Қате формат енгізілсе, "Тек схема, хост және https://app.example.com сияқты қосымша порты бар түпнұсқаны енгізіңіз." қатесі көрсетіледі.
    • Сұралған әдіс: Сұраудың HTTP әдісі (мысалы, GET, POST, PUT). Жарамсыз әдіс енгізілсе, "Жарамды HTTP әдісі таңбалауышын енгізіңіз." қатесі шығады. Егер шолғыш рұқсат бермейтін әдіс енгізілсе, "Браузерлер fetch сұрауларында ‹method› әдісіне рұқсат бермейді." хабарламасы көрсетіледі.
    • Сұралған тақырып атаулары: Access-Control-Request-Headers тақырыбында жіберілетін, үтір немесе жаңа жол арқылы бөлінген тақырып атаулары (мысалы, Content-Type, Authorization). Жарамсыз тақырып үшін “‹header›” жарамды HTTP sұрау тақырыбы атауы емес." қатесі шығады.
    • Тіркелгі деректерін қосыңыз: Сұрауда cookie файлдары немесе HTTP аутентификациясы бар-жоғын көрсететін ауыстырып-қосқыш.

    Шолғыш шешімдері және талдау нәтижелері

    Енгізілген мәліметтерді тексеру нәтижесінде құрал келесі шешімдердің бірін шығарады:

    • "CORS саясатын тексеру үшін жауапты қойыңыз.": Бастапқы күйде көрсетіледі.
    • "Жаауап пен сұрау мәліметтерін енгізіңіз, содан кейін CORS саясатын тексеріңіз.": Мәліметтер толық енгізілмегенде шығады.
    • "Қойылған CORS жауабымен рұқсат етілген.": Барлық CORS ережелері сақталған жағдайда көрсетіледі.
    • "Қойылған CORS жауабы арқылы бұғатталған.": Ережелер бұзылған жағдайда шығады.
    • "Тақырыптар өтеді, бірақ алдын ала ұшу күйі белгісіз.": Тақырыптар сәйкес келеді, бірақ HTTP күй жолы болмағандықтан алдын ала ұшу күйін тексеру мүмкін болмағанда көрсетіледі.

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

    CORS ережелері және ерекше жағдайлар

    CORS саясатын тексеру кезінде бірнеше маңызды ережелер мен шектеулер ескеріледі:

    1. Тіркелгі деректері және қойылымды таңба (*): Егер сұрауда тіркелгі деректері (cookies, HTTP аутентификациясы) қосылған болса, Access-Control-Allow-Origin тақырыбының мәні * (қойылымды таңба) бола алмайды. Ол сұраудың түпнұсқасына дәл сәйкес келуі тиіс. Сондай-ақ, тіркелгі деректері бар сұрауларда рұқсат етілген әдістер мен тақырыптар үшін қолданылатын қойылымды таңбалар өз күшін жояды.
    2. Тіркелгі деректерін растау: Тіркелгі деректері бар сұраулар үшін Access-Control-Allow-Credentials тақырыбының мәні дәл true болуы шарт.
    3. Бірнеше бастау мәндері: Егер Access-Control-Allow-Origin тақырыбында бірнеше мән көрсетілсе немесе олар үтірмен бөлінсе, бұл жарамсыз деп танылады.
    4. Authorization тақырыбы: Authorization тақырыбы әрқашан Access-Control-Allow-Headers ішінде нақты көрсетілуі тиіс. Тіпті Access-Control-Allow-Headers: * мәні көрсетілсе де, ол Authorization тақырыбын қамтымайды.
    5. Алдын ала ұшу (Preflight) күйі: Ұшу алдындағы сұраудың сәтті өтуі үшін HTTP жауап күйі 2xx деңгейінде болуы керек. Егер жауапта HTTP күй жолы мүлдем болмаса, алдын ала ұшу күйін тексеру мүмкін емес және нәтиже белгісіз болады.

    Құпиялылық және өңдеу ережелері

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

    Жиі қойылатын сұрақтар (FAQ)

    Сұрақ: Мен нақты жауапты немесе ұшу алдындағы жауапты қоюым керек пе?
    Жауап: Браузер коды бір жауапты оқи алатынын тексеру үшін Нақты жауапты пайдаланыңыз. Кейінгі әдісті және оның сұралған тақырып атауларын бекітетін OPTIONS жауабы үшін алдын ала ұшу жауабын пайдаланыңыз.

    Сұрақ: Неліктен қойылмалы таңба тіркелгі деректерімен сәтсіздікке ұшырауы мүмкін?
    Жауап: Cookie файлдары немесе HTTP аутентификациясы қосылғанда, рұқсат етілген бастау сұраушы түпнұсқаға дәл сәйкес келуі керек. Рұқсат етілген әдістер мен тақырыптарға арналған қойылмалы таңбалар да қойылмалы таңба мағынасын жоғалтады.

    Сұрақ: Өтпелі нәтиже тікелей сұраудың жұмыс істейтінін дәлелдей ме?
    Жауап: Жоқ. Бұл нәтиже тек қойылған жауап пен осында енгізілген сұрау мәліметтерін қамтиды. Қайта бағыттаулар, кэштелген жауаптар, сервер ережелерін өзгерту, шолғыш кеңейтімдері және алдын ала ұшудан кейінгі нақты жауап әлі де нәтижені өзгерте алады.

    Сұрақ: Authorization тақырыбын қолданғанда қандай ерекшелік бар?
    Жауап: Authorization тақырыбы Access-Control-Allow-Headers ішінде нақты жазылуы керек. Тіпті Access-Control-Allow-Headers: * қолданылса да, ол бұл тақырыпты қамтымайды.