CORS kontrollija

Kontrollige, kas kleebitud vastus lubab kindlat brauseri päritolu, meetodit ja päringu päiseid.

Vastus kontrollimiseks
Kleepige olekurida ka lennueelse vastuse kontrollimisel.
Päises Origin saadetud skeem, host ja valikuline port.
Lülitage sisse taotluste puhul, mis sisaldavad küpsiseid või HTTP autentimist.
Brauseri otsus

    Parsed Access-Control väljad

    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

    Sisestage vastuse ja päringu üksikasjad, seejärel kontrollige CORS poliitikat.

    Kleepige vastus, et kontrollida selle CORS poliitikat.

    Teie päised ja päringu üksikasjad jäävad teie brauserisse. BroBroGo ei laadi üles ega salvesta midagi.

    KKK

    Kas ma peaksin kleepima tegeliku vastuse või lennueelse vastuse?

    Kasutage Tegelikku vastust, et kontrollida, kas brauseri kood suudab lugeda ühte vastust. Kasutage vastuse OPTIONS jaoks eelflighti vastust, mis kinnitab hilisema meetodi ja selle nõutud päise nimed.

    Miks võib metamärk mandaatidega ebaõnnestuda?

    Kui kaasatakse küpsised või HTTP-autentimine, peab lubatud päritolu täpselt vastama päringu päritolule. Lubatud meetodite ja päiste metamärgid kaotavad samuti metamärgi tähenduse.

    Kas mööduv tulemus tõestab, et reaalajas päring töötab?

    Ei. See tulemus hõlmab ainult kleebitud vastust ja siia sisestatud päringu üksikasju. Ümbersuunamised, vahemällu salvestatud vastused, serverireeglite muutmine, brauseri laiendused ja tegelik vastus pärast eelproovi võivad tulemust siiski muuta.

    CORS-poliitika mõistmine ja kontrollimine

    Cross-Origin Resource Sharing (CORS) on brauserite turvamehhanism, mis määrab, kas veebirakendus tohib teha päringuid teisele domeenile ehk päritolule (origin). Kui veebibrauser teeb ristpäringu, kontrollib see serveri saadetud HTTP-vastuse päiseid, et otsustada, kas andmete lugemine on lubatud.

    CORS-reeglite käsitsi analüüsimine võib olla keeruline, kuna brauseri käitumine sõltub mitmest asjaolust: päringu meetodist, päistest, päritolust ja sellest, kas päringuga saadetakse kaasa mandaate (küpsiseid või HTTP-autentimist). Tööriist CORS kontrollija võimaldab kleepida HTTP-vastuse päised ja sisestada päringu andmed, et simuleerida brauseri otsustusprotsessi otse oma seadmes.

    Kuidas CORS kontrollija töötab

    Tööriist analüüsib sisestatud HTTP-vastuse päiseid ja võrdleb neid teie määratud päringu parameetritega. Kontrolli tegemiseks on vaja täita järgmised sisendväljad:

    • Vastus kontrollimiseks: Saate valida kahe režiimi vahel: "Tegelik vastus" või "Lennueelne reaktsioon".
    • HTTP vastuse päised: Tekstiväli, kuhu tuleb kleepida serveri vastuse päised. Lennueelse vastuse kontrollimisel tuleb kleepida ka olekurida. Maksimaalne lubatud pikkus on 200 000 tähemärki. Kui väli on tühi, kuvatakse tõrge "Enne kontrollimist kleepige HTTP vastuse päised.". Kui sisend ületab limiidi, kuvatakse teade "See vastus on ebatavaliselt suur. Hoidke seda ‹max› tähemärkide all.". Vigaste ridade puhul kuvatakse veateated "Rida ‹line› ei ole kehtiv HTTP päis või olekurida." või "Rida ‹line› sisaldab kehtetut HTTP-päise nime.".
    • Taotle päritolu: Päringu algupära, mis koosneb skeemist, hostist ja valikulisest pordist (näiteks https://app.example.com). Sisend peab olema puhas päritolu või null – URL-i tee, päringuparameetrid ja kasutajaandmed ei ole lubatud. Vigase sisendi korral kuvatakse teade "Sisestage lähtekoht ainult skeemi, hosti ja valikulise pordiga, nt https://app.example.com.".
    • Soovitud meetod: Päringus kasutatav HTTP-meetod. Vigase meetodi sisestamisel kuvatakse teade "Sisestage kehtiv HTTP-meetodi luba.". Kui sisestatakse brauseris keelatud meetod, kuvatakse tõrge "Brauserid ei luba ‹method› meetodit fetch taotlustes.".
    • Soovitud päiste nimed: Päised, mida päring soovib saata (vastab päisele Access-Control-Request-Headers). Nimed tuleb eraldada komade või reavahetustega. Vigase päise nime korral kuvatakse teade „‹header›” ei ole kehtiv HTTP päringu päise nimi.".
    • Kaasa volikirjad: Märkeruut või lüliti, mis näitab, kas päring sisaldab küpsiseid või HTTP-autentimist.

    Kui sisendandmetes esineb vigu, kuvatakse üldine hoiatus "Parandage esiletõstetud sisend ja proovige uuesti.".

    Brauseri otsused ja tulemuste tõlgendamine

    Pärast andmete sisestamist ja kontrolli käivitamist kuvab tööriist jaotises "Brauseri otsus" ühe järgmistest olekutest:

    • "Kleepige vastus, et kontrollida selle CORS poliitikat." (Algolek enne andmete sisestamist).
    • "Sisestage vastuse ja päringu üksikasjad, seejärel kontrollige CORS poliitikat." (Kuvatakse siis, kui sisendandmed on puudulikud).
    • "Lubatud kleebitud vastusega CORS.".
    • "Blokeeritud kleebitud vastusega CORS.".
    • "Päised lähevad läbi, kuid lennueelne olek pole teada.".

    Lisaks kuvatakse jaotises "Parsed Access-Control väljad" pargitud päised või märge "Ei ole kohal", kui vastav päis puudub.

    CORS-reeglid ja otsuse põhjendused

    Tööriist selgitab oma otsust konkreetsete reeglite alusel, mis vastavad brauserite tegelikule käitumisele:

    Päritolu kontroll (Origin)

    • Kui päis Access-Control-Allow-Origin ühtib täpselt päringu päritoluga, kuvatakse põhjendus "Access-Control-Allow-Origin vastab täpselt numbrile ‹origin›.".
    • Kui päis lubab kõiki päritolusid, kuvatakse teade "Access-Control-Allow-Origin lubab selle päringu jaoks mis tahes päritolu.".
    • Kui päis puudub, on otsuse põhjuseks "Access-Control-Allow-Origin on puudu.".
    • Kui päis sisaldab mitut väärtust või on komadega eraldatud, loetakse see vigaseks ja kuvatakse teade "Access-Control-Allow-Origin väärtus on kehtetu: ‹value›.".
    • Kui päritolud ei kattu, kuvatakse teade "Access-Control-Allow-Origin on ‹actual›, mitte ‹expected›.".

    Mandaatide mõju (Credentials)

    Kui päringuga saadetakse kaasa mandaadid (küpsised või autoriseerimispäised), kehtivad rangemad reeglid:

    • Päis Access-Control-Allow-Origin ei tohi olla metamärk *. Sellisel juhul kuvatakse teade "Access-Control-Allow-Origin ei saa olla *, kui mandaadid on lisatud.".
    • Mandaatidega päringu puhul peab vastuses olema päis Access-Control-Allow-Credentials: true. Kui see on olemas, kuvatakse teade "Access-Control-Allow-Credentials on täpselt tõsi.". Kui see puudub, kuvatakse teade "Mandaatitaotlus vajab Access-Control-Allow-Credentials: tõsi.".
    • Kui mandaate ei kaasata, ei mõjuta see päis otsust ja kuvatakse teade "Mandaate ei ole lisatud, seega ei mõjuta Access-Control-Allow-Credentials seda otsust.".
    • Mandaatide kaasamisel kaotavad metamärgid * oma tähenduse ka lubatud meetodite ja päiste puhul.

    Lennueelsed päringud (Preflight) ja HTTP olekukoodid

    Lennueelse päringu (OPTIONS) kontrollimisel on oluline HTTP olekurida:

    • Kui olekurida puudub, on tulemus määramatu ja kuvatakse teade "HTTP olekurida ei kleebitud, seega ei saa nõutavat 2xx eelkontrolli olekut kontrollida.".
    • Edukaks lennueelseks kontrolliks on vajalik 2xx seeria olekukood. Sõltuvalt koodist kuvatakse kas "Lennueelne olek ‹status› on edukas." või "Lennueelne olek ‹status› ei ole edukas 2xx olek.".

    Meetodite ja päiste lubamine

    • Kui meetod on CORS-turvaline (CORS-safelisted), ei pea seda päises Access-Control-Allow-Methods olema. Tööriist kuvab sel juhul teate "‹method› on CORS-turvaline meetod ja seda ei pea Access-Control-Allow-Methods-s kuvama.".
    • Muude meetodite puhul kontrollitakse luba päisest. Vastavalt tulemusele kuvatakse kas "Lennueelsel ajal on lubatud ‹method›." või "Access-Control-Allow-Methods ei luba ‹method›.".
    • Kui päringu päised ei vaja eelkontrolli kinnitust, kuvatakse teade "Ükski taotletud päise nimi ei vaja eelkontrolli kinnitust.".
    • Kui päised on lubatud, kuvatakse teade "Eelproov lubab taotletud päisenimesid: ‹headers›.".
    • Kui päiseid ei lubata, kuvatakse teade "Access-Control-Allow-Headers ei luba: ‹headers›.".
    • Kui päringus ei kasutata mandaate, võib päiste lubamiseks kasutada metamärki *. Sellisel juhul kuvatakse teade "Access-Control-Allow-Headers: * hõlmab neid nimesid ilma volitusteta päringu puhul: ‹headers›.".
    • Erandiks on päis Authorization. Seda päist ei kata metamärk * ning see peab alati olema päises Access-Control-Allow-Headers eraldi välja toodud. Vastasel juhul kuvatakse teade "Authorization peab olema selgesõnaliselt loetletud; Access-Control-Allow-Headers: * ei kata seda.".

    Privaatsus ja andmetöötlus

    Teie sisestatud andmete turvalisus on tagatud kohaliku töötlusega. Kõik sisestatud HTTP-päised ja päringu üksikasjad jäävad teie veebibrauserisse. BroBroGo ei laadi neid andmeid serverisse ega salvesta neid. Tööriist ei võta ühendust väliste serveritega, ei loe URL-e, ei määra küpsiseid, ei kontrolli DNS/TLS seadistusi ega muuda serveri konfiguratsioone.

    Kellele on see tööriist mõeldud?

    CORS-reeglite kontrollimine on vajalik paljudele veebiarendusega seotud spetsialistidele:

    • Esirakenduse arendajad (Front-end), kes peavad veenduma, et brauseris jooksev kood saab teha päringuid välistele teenustele ja lugeda nende vastuseid.
    • Tagarakenduse arendajad (Back-end), kes seadistavad API-de vastuse päiseid ja peavad tagama õiged CORS-reeglid.
    • API platvormide arendajad, kes kujundavad ja haldavad avalikke või asutusesiseseid liideseid.
    • Süsteemiadministraatorid ja DevOps-insenerid, kes konfigureerivad veebiservereid või proksisid ning peavad kontrolli eesmärgil veenduma, et OPTIONS-päringud tagastavad korrektseid päiseid.

    Korduma kippuvad küsimused

    Kas ma peaksin kleepima tegeliku vastuse või lennueelse vastuse?
    Kasutage Tegelikku vastust, et kontrollida, kas brauseri kood suudab lugeda ühte vastust. Kasutage vastuse OPTIONS jaoks eelflighti vastust, mis kinnitab hilisema meetodi ja selle nõutud päise nimed.

    Miks võib metamärk mandaatidega ebaõnnestuda?
    Kui kaasatakse küpsised või HTTP-autentimine, peab lubatud päritolu täpselt vastama päringu päritolule. Lubatud meetodite ja päiste metamärgid kaotavad samuti metamärgi tähenduse.

    Kas mööduv tulemus tõestab, et reaalajas päring töötab?
    Ei. See tulemus hõlmab ainult kleebitud vastust ja siia sisestatud päringu üksikasju. Ümbersuunamised, vahemällu salvestatud vastused, serverireeglite muutmine, brauseri laiendused ja tegelik vastus pärast eelproovi võivad tulemust siiski muuta.