Preverjevalnik CORS

Preverite, ali prilepljen odgovor omogoča določen izvor, metodo in glave zahteve v brskalniku.

Odgovor na preverjanje
Statusno vrstico prilepite tudi, ko preverjate predletni odgovor.
Shema, gostitelj in opcijski port so bili poslani v glavi Origin.
Vklopite zahteve, ki vključujejo piškotke ali HTTP avtentikacijo.
Odločitev glede brskalnika

    Razčlenjena polja za nadzor dostopa

    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

    Vnesite odgovor in podatke o zahtevi, nato preverite CORS politiko.

    Prilepite odgovor, da preverite njegovo CORS politiko.

    Vaše glave in podrobnosti zahtev ostanejo v brskalniku. BroBroGo ne naloži ničesar ali ne shrani.

    Pogosta vprašanja

    Ali naj prilepim dejanski odgovor ali predletni odgovor?

    Uporabite Dejanski odgovor, da preverite, ali lahko koda brskalnika prebere en odgovor. Uporabite predpredletni odgovor za OPTIONS odgovor, ki odobri kasnejšo metodo in njena zahtevana imena glave.

    Zakaj lahko nepredvidljiva karta ne uspe pri poverilnicah?

    Ko so vključeni piškotki ali HTTP avtentikacija, mora dovoljeni izvor natančno ustrezati zahtevanemu izvoru. Wildcardi za dovoljene metode in glave prav tako izgubijo svoj pomen wildcarda.

    Ali uspešen rezultat dokazuje, da bo živa zahteva delovala?

    Ne. Ta rezultat zajema le prilepljeni odgovor in podrobnosti zahteve, vnesene tukaj. Preusmeritve, predpomnjeni odgovori, spreminjanje strežniških pravil, razširitev brskalnika in dejanski odgovor po predhodnem pregledu lahko še vedno spremenijo izid.

    Razumevanje politike deljenja virov med različnimi izvori (CORS)

    Politika deljenja virov med različnimi izvori (CORS) je varnostni mehanizem, ki ga brskalniki uporabljajo za omejevanje interakcij med spletnimi mesti različnih izvorov. Izvor določajo shema, gostitelj in vrata (port). Ko skripta na enem izvoru zahteva vir iz drugega izvora, brskalnik uveljavi pravila CORS, da preveri, ali je ciljni strežnik izrecno odobril takšen dostop.

    Preverjevalnik CORS je specializirano orodje, ki razvijalcem pomaga ugotoviti, ali bi spletni brskalnik dovolil določeno zahtevo med različnimi izvori na podlagi posredovanih HTTP glav odgovora in podrobnosti zahteve. Orodje deluje tako, da analizira vnesene podatke in simulira odločitvene procese brskalnika, ne da bi dejansko stopilo v stik s strežnikom.

    Vhodni podatki za analizo CORS

    Za natančno oceno obnašanja brskalnika zahteva orodje več specifičnih vhodnih parametrov, ki odražajo dejansko stanje omrežne zahteve:

    • Odgovor na preverjanje: Izberete lahko med možnostma "Dejanski odziv" ali "Predhodni odgovor".
    • HTTP glave odzivov: Tekstovno polje, kamor prilepite HTTP glave odgovora. Pri preverjanju predhodnega odgovora morate vključiti tudi statusno vrstico. Največja dovoljena dolžina vnosa je 200.000 znakov. Če je polje prazno, se prikaže opozorilo "Pred preverjanjem prilepite HTTP glave odziva.". Če vnos preseže omejitev, orodje javi "Ta odziv je nenavadno velik. Naj ostane pod ‹max› liki.". Neveljavne vrstice sprožijo napako "Vrstica ‹line› ni veljavna glava HTTP ali statusna vrstica." ali "Vrstica ‹line› vsebuje neveljavno ime glave HTTP.".
    • Izvor zahteve: Vnosno polje za shemo, gostitelj in opcijski port izvora, na primer https://app.example.com. Vnos mora biti čist izvor ali null brez poti URL, poizvedb ali poverilnic. V nasprotnem primeru se izpiše napaka "Vnesite izvor, kjer je le shema, gostitelj in opcijski port, kot je https://app.example.com.".
    • Zahtevana metoda: HTTP metoda zahteve. Če vnesete neveljaven žeton, se prikaže "Vnesite veljaven žeton HTTP metode.". Če uporabite prepovedano metodo, orodje opozori "Brskalniki ne dovoljujejo metode ‹method› pri zahtevah za pridobivanje podatkov.".
    • Zahtevana imena glav: Imena glav iz polja Access-Control-Request-Headers, ločena z vejicami ali vrsticami, na primer Content-Type, Authorization. Neveljavna imena sprožijo napako ""‹header›" ni veljavno ime glave HTTP zahtevek.".
    • Vključite poverilnice: Preklopni gumb, ki označuje, ali zahteva vključuje piškotke ali HTTP avtentikacijo.

    Če pride do splošnih težav z vnosi, orodje prikaže opozorilo "Popravi označen vhod in poskusi znova.".

    Odločitve brskalnika in razlogi za blokado

    Na podlagi analiziranih glav in parametrov zahteve orodje vrne eno izmed naslednjih stanj odločitve brskalnika:

    • "Dovoljeno zaradi prilepljenega CORS odgovora."
    • "Blokiran zaradi prilepljenega CORS odgovora."
    • "Glave so mimo, vendar je stanje predleta neznano."
    • "Vnesite odgovor in podatke o zahtevi, nato preverite CORS politiko." (če podatki niso vneseni)
    • "Prilepite odgovor da preverite njegovo CORS politiko." (začetno stanje)

    Orodje prav tako prikaže razčlenjena polja za nadzor dostopa (Access-Control-*) in navede natančne razloge za sprejeto odločitev:

    Scenarij Izpisano sporočilo o razlogu
    Natančno ujemanje izvora "Access-Control-Allow-Origin se popolnoma ujema z ‹origin›."
    Splošno dovoljenje izvora "Access-Control-Allow-Origin dovoljuje katerikoli izvor za to zahtevo."
    Manjkajoča glava izvora "Access-Control-Allow-Origin manjka."
    Neveljavna uporaba divje karte "Access-Control-Allow-Origin ne more biti *, ko so vključene poverilnice."
    Neskladnost izvorov "Access-Control-Allow-Origin je ‹actual›, ne ‹expected›."
    Neveljavna vrednost glave "Access-Control-Allow-Origin ima neveljavno vrednost: ‹value›."

    Vloga predhodnih zahtev (Preflight)

    Pri zahtevah, ki niso enostavne, brskalnik najprej pošlje predhodno zahtevo (preflight request) z metodo OPTIONS. S tem preveri, ali strežnik dovoljuje dejansko metodo in glave.

    Če preverjate predhodni odgovor, mora biti statusna koda uspešna. Orodje preverja naslednje pogoje:

    • Če je status uspešen: "Predletni status ‹status› je uspešen."
    • Če status ni uspešen: "Predletni status ‹status› ni uspešen 2xx status."
    • Če statusna vrstica manjka: "Nobena HTTP statusna vrstica ni bila prilepljena, zato zahtevanega 2xx predletnega statusa ni mogoče preveriti." (v tem primeru je rezultat predhodnega pregleda označen kot nedoločen).

    Glede dovoljenih metod in glav veljajo naslednja pravila:

    • Če je metoda dovoljena: "Predletni pregled dovoljuje ‹method›."
    • Če je metoda na varnem seznamu: "‹method› je CORS varna metoda in ni nujno, da se pojavi v Access-Control-Allow-Methods."
    • Če metoda ni dovoljena: "Access-Control-Allow-Methods ne dovoljuje ‹method›."
    • Če glave ne potrebujejo odobritve: "Nobena zahtevana imena glav ne potrebujejo predhodne odobritve."
    • Če so glave odobrene: "Predletni postopek dovoljuje zahtevana imena glave: ‹headers›."

    Vpliv poverilnic in posebna pravila za divje karte

    Ko zahteva vključuje poverilnice (piškotke ali HTTP avtentikacijo), začnejo veljati strožja pravila CORS:

    1. Prepoved divjih kart za izvor: Glava Access-Control-Allow-Origin ne sme vsebovati vrednosti *. Izvor mora biti natančno naveden.
    2. Izguba pomena divjih kart: Divje karte (*) v glavah Access-Control-Allow-Methods in Access-Control-Allow-Headers izgubijo svoj pomen divje karte in ne pokrivajo vseh metod ali glav.
    3. Zahteva po eksplicitni odobritvi: Glava Access-Control-Allow-Credentials mora biti nastavljena natančno na true. Orodje to ovrednoti z "Access-Control-Allow-Credentials je povsem res." ali "Zahteva za akreditacijo potrebuje Access-Control-Allow-Credentials: res.". Če poverilnice niso vključene, velja "Poverilnice niso vključene, zato Access-Control-Allow-Credentials ne vpliva na to odločitev.".
    4. Omejitve za večkratne vrednosti: Če Access-Control-Allow-Origin vsebuje več vrednosti ali je ločen z vejicami, se šteje za neveljavnega.
    5. Posebno pravilo za Authorization: Glava Authorization mora biti vedno izrecno navedena v Access-Control-Allow-Headers. Tudi če so poverilnice izključene in je uporabljena divja karta Access-Control-Allow-Headers: *, ta ne pokriva glave Authorization. V tem primeru se izpiše opozorilo "Authorization mora biti izrecno naveden; Access-Control-Allow-Headers: * ne pokriva tega.". Za ostale glave brez poverilnic velja "Access-Control-Allow-Headers: * pokriva ta imena za zahtevo brez poverilnic: ‹headers›.", sicer pa "Access-Control-Allow-Headers ne dovoljuje: ‹headers›.".

    Zasebnost in omejitve obdelave

    Vsi podatki, ki jih vnesete v to orodje, se obdelujejo lokalno. Vaše glave in podrobnosti zahtev ostanejo v brskalniku. BroBroGo ne naloži ničesar ali ne shrani.

    Upoštevajte, da uspešen rezultat v orodju ne jamči, da bo dejanska zahteva v živem okolju delovala. Orodje preverja le prilepljene glave odgovora in vnesene podrobnosti zahteve. Ne more upoštevati preusmeritev, predpomnjenih odgovorov, spreminjanja strežniških pravil, brskalniških razširitev ali dejanskega odgovora, ki ga strežnik vrne po uspešnem predhodnem pregledu. Orodje prav tako ne kontaktira strežnika, ne bere URL-jev, ne nastavlja piškotkov, ne preverja DNS/TLS zapisov in ne spreminja konfiguracije strežnika.

    Pogosta vprašanja (FAQ)

    Ali naj prilepim dejanski odgovor ali predletni odgovor?

    Uporabite Dejanski odgovor, da preverite, ali lahko koda brskalnika prebere en odgovor. Uporabite predpredletni odgovor za OPTIONS odgovor, ki odobri kasnejšo metodo in njena zahtevana imena glave.

    Zakaj lahko nepredvidljiva karta ne uspe pri poverilnicah?

    Ko so vključeni piškotki ali HTTP avtentikacija, mora dovoljeni izvor natančno ustrezati zahtevanemu izvoru. Wildcardi za dovoljene metode in glave prav tako izgubijo svoj pomen wildcarda.

    Ali uspešen rezultat dokazuje, da bo živa zahteva delovala?

    Ne. Ta rezultat zajema le prilepljeni odgovor in podrobnosti zahteve, vnesene tukaj. Preusmeritve, predpomnjeni odgovori, spreminjanje strežniških pravil, razširitev brskalnika in dejanski odgovor po predhodnem pregledu lahko še vedno spremenijo izid.