CORS pārbaudītājs

Pārbaudiet, vai ielīmētā atbilde pieļauj noteiktu pārlūkprogrammas izcelsmi, metodi un pieprasījuma galvenes.

Atbilde uz pārbaudi
Pārbaudot pirmslidojuma atbildi, ielīmējiet arī statusa rindiņu.
Shēma, saimniekdators un izvēles ports, kas nosūtīts galvenē Origin.
Ieslēdziet pieprasījumiem, kas ietver sīkfailus vai HTTP autentifikāciju.
Pārlūka lēmums

    Parsētie Access-Control lauki

    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

    Ievadiet atbildes un pieprasījuma informāciju, pēc tam pārbaudiet politiku CORS.

    Ielīmējiet atbildi, lai pārbaudītu tās CORS politiku.

    Jūsu galvenes un pieprasījuma informācija paliek jūsu pārlūkprogrammā. BroBroGo nekas nav augšupielādēts vai saglabāts.

    BUJ

    Vai man jāielīmē faktiskā atbilde vai pirmslidojuma atbilde?

    Izmantojiet Faktisko atbildi, lai pārbaudītu, vai pārlūkprogrammas kods var nolasīt vienu atbildi. Izmantojiet Preflight atbildi atbildei OPTIONS, kas apstiprina vēlāku metodi un tās pieprasītos galvenes nosaukumus.

    Kāpēc aizstājējzīme var neizdoties ar akreditācijas datiem?

    Ja ir iekļauti sīkfaili vai HTTP autentifikācija, atļautajam avotam ir precīzi jāatbilst pieprasījuma izcelsmei. Aizstājējzīmes atļautajām metodēm un galvenes arī zaudē aizstājējzīmju nozīmi.

    Vai izturīgs rezultāts pierāda, ka tiešraides pieprasījums darbosies?

    Nē. Šis rezultāts aptver tikai ielīmēto atbildi un šeit ievadīto pieprasījuma informāciju. Novirzīšana, kešatmiņā saglabātās atbildes, servera noteikumu maiņa, pārlūkprogrammas paplašinājumi un faktiskā atbilde pēc pirmspārbaudes joprojām var mainīt rezultātu.

    Tīmekļa izstrādē Cross-Origin Resource Sharing (CORS) jeb starpizcelsmes resursu koplietošanas politika nosaka, vai pārlūkprogrammas kods drīkst piekļūt resursiem no cita domēna. CORS pārbaudītājs ir rīks, kas palīdz saprast, vai tīmekļa pārlūkprogramma atļautu konkrētu starpizcelsmes pieprasījumu, pamatojoties uz jūsu sniegtajām HTTP atbildes galvenēm un pieprasījuma detaļām.

    Šis rīks ir noderīgs front-end izstrādātājiem, back-end izstrādātājiem, API platformu izstrādātājiem, operāciju inženieriem un ikvienam, kurš vēlas noskaidrot, vai pārlūkprogrammas kods spēs nolasīt konkrētu atbildi vai arī OPTIONS pieprasījuma atbilde apstiprinās vēlāku metodi un tās pieprasītos galvenes nosaukumus.

    Kā darbojas CORS pārbaude

    Lai veiktu pārbaudi, rīka saskarnē ir jānorāda pieprasījuma parametri un jāielīmē servera atbildes galvenes. Rīks analizē ievadītos datus lokāli un sniedz skaidrojumu par pārlūkprogrammas lēmumu, pamatojoties uz CORS specifikācijas noteikumiem.

    Ievades dati un ierobežojumi

    Lai veiktu analīzi, lietotājam ir jānorāda šādi parametri:

    • Atbilde uz pārbaudi: Izvēle starp "Faktiskā atbilde" vai "Pirmslidojuma atbilde".
    • HTTP atbildes galvenes: Teksta lauks, kurā jāiekļauj HTTP atbildes galvenes (maksimālais garums ir 200 000 rakstzīmju). Pārbaudot pirmslidojuma atbildi, ir jāiekļauj arī statusa rindiņa.
    • Pieprasījuma izcelsme: Lauks, kurā norāda shēmu, saimniekdatoru un izvēles portu (piemēram, https://app.example.com). Tam jābūt tīram avotam vai null — URL ceļš, vaicājuma parametri vai autorizācijas dati nav atļauti.
    • Pieprasītā metode: HTTP metode, kas tiks izmantota pieprasījumā.
    • Pieprasītie galvenes nosaukumi: Galvenes no Access-Control-Request-Headers, atdalītas ar komatiem vai jaunām rindām (piemēram, Content-Type, Authorization).
    • Iekļaut akreditācijas datus: Pārslēgs, kas norāda, vai pieprasījumā tiks iekļauti sīkfaili vai HTTP autentifikācija.

    Ja ievadītie dati neatbilst formātam, rīks uzrāda kļūdu paziņojumus, piemēram, "Pirms pārbaudes ielīmējiet HTTP atbildes galvenes." vai "Ievadiet izcelsmi, izmantojot tikai shēmu, saimniekdatoru un izvēles portu, piemēram, https://app.example.com.". Ja ievadītā metode ir aizliegta, tiek parādīts paziņojums "Pārlūkprogrammas neļauj izmantot ‹method› metodi fetch pieprasījumos.".

    CORS politikas analīzes noteikumi

    Pārlūkprogrammas lēmums ir atkarīgs no vairākiem specifiskiem CORS noteikumiem un to mijiedarbības ar pieprasījuma parametriem.

    Izcelsmes pārbaude un Access-Control-Allow-Origin

    Galvenais CORS elements ir Access-Control-Allow-Origin galvene. Rīks pārbauda šādus nosacījumus:

    • Ja galvene precīzi sakrīt ar pieprasījuma izcelsmi, tiek piemērots lēmums "Access-Control-Allow-Origin precīzi atbilst ‹origin›.".
    • Ja galvenē ir izmantota aizstājējzīme, tiek uzrādīts paziņojums "Access-Control-Allow-Origin pieļauj jebkuru šī pieprasījuma izcelsmi.".
    • Ja galvene trūkst vai tās vērtība nesakrīt, rīks ziņo par kļūdu, piemēram, "Access-Control-Allow-Origin trūkst." vai "Access-Control-Allow-Origin ir ‹actual›, nevis ‹expected›.".
    • Ja Access-Control-Allow-Origin satur vairākas vērtības vai ir atdalīta ar komatiem, tā tiek uzskatīta par nederīgu, uzrādot paziņojumu "Access-Control-Allow-Origin ir nederīga vērtība: ‹value›.".

    Akreditācijas datu ietekme

    Ja pieprasījumā ir iekļauti akreditācijas dati (sīkfaili vai HTTP autentifikācija), stājas spēkā stingrāki ierobežojumi:

    1. Access-Control-Allow-Origin vērtība nedrīkst būt aizstājējzīme *. Ja šis nosacījums tiek pārkāpts, tiek uzrādīts paziņojums "Access-Control-Allow-Origin nevar būt *, ja ir iekļauti akreditācijas dati.".
    2. Aizstājējzīmes atļautajām metodēm un galvenēm zaudē savu speciālo nozīmi un tiek uztvertas burtiski.
    3. Galvenei Access-Control-Allow-Credentials ir jābūt precīzi true. Pretējā gadījumā tiek parādīts paziņojums "Akreditācijas pieprasījumam ir nepieciešams Access-Control-Allow-Credentials: true.".

    Ja akreditācijas dati netiek sūtīti, šī galvene lēmumu neietekmē.

    Pirmslidojuma (Preflight) pieprasījumu apstrāde

    Pirmslidojuma pieprasījumi (izmantojot OPTIONS metodi) tiek sūtīti, lai noskaidrotu, vai serveris atļauj reālo pieprasījumu ar noteiktu metodi un galvenēm.

    HTTP statusa kodi

    Lai pirmslidojuma pārbaude būtu sekmīga, atbildes statusa kodam ir jābūt veiksmīgam 2xx sērijas kodam.

    • Ja statusa rinda nav ielīmēta, rīks nevar pārbaudīt šo nosacījumu un uzrāda paziņojumu "Netika ielīmēta HTTP statusa rinda, tāpēc nepieciešamo 2xx pirmslidojuma statusu nevar pārbaudīt.". Šādā gadījumā gala lēmums būs "Galvenes izeit, bet pirmslidojuma statuss nav zināms.".
    • Ja statuss ir ārpus 2xx diapazona, tiek uzrādīts paziņojums "Pirmslidojuma statuss ‹status› nav veiksmīgs 2xx statuss.".

    Metožu un galveņu apstiprināšana

    Pirmslidojuma atbildē tiek pārbaudītas atļautās metodes un galvenes:

    • Ja metode ir iekļauta CORS drošajā sarakstā (CORS-safelisted), tai nav obligāti jāparādās Access-Control-Allow-Methods galvenē.
    • Ja pieprasījumā nav iekļauti akreditācijas dati, aizstājējzīmi * var izmantot gan Access-Control-Allow-Methods, gan Access-Control-Allow-Headers.
    • Izņēmums: Galvene Authorization ir jānorāda skaidri. Pat ja ir iestatīts Access-Control-Allow-Headers: *, tas neattiecas uz Authorization galveni, un rīks uzrādīs paziņojumu "Authorization ir skaidri jānorāda; Access-Control-Allow-Headers: * to neaptver.".

    Privātums un darbības ierobežojumi

    Lietojot šo rīku, jūsu ievadītās galvenes un pieprasījuma informācija paliek jūsu pārlūkprogrammā. BroBroGo nekas netiek augšupielādēts vai saglabāts.

    Svarīgi saprast, ka šis rīks veic tikai statisku ielīmēto datu analīzi. Tas nesazinās ar serveri, nelasa URL adreses, neiestata sīkfailus, neveic DNS vai TLS pārbaudes un nemaina servera konfigurāciju. Apstiprinošs rezultāts ("Atļauj ielīmētā CORS atbilde.") garantē tikai to, ka ielīmētās galvenes atbilst norādītajiem pieprasījuma parametriem. Tas neņem vērā iespējamās novirzīšanas (redirects), kešatmiņas darbību, servera noteikumu izmaiņas reāllaikā, pārlūkprogrammas paplašinājumu ietekmi vai faktisko atbildi, kas tiek saņemta pēc pirmslidojuma pieprasījuma veikšanas dabā.

    Biežāk uzdotie jautājumi (FAQ)

    Vai man jāielīmē faktiskā atbilde vai pirmslidojuma atbilde?

    Izmantojiet Faktisko atbildi, lai pārbaudītu, vai pārlūkprogrammas kods var nolasīt vienu atbildi. Izmantojiet Preflight atbildi atbildei OPTIONS, kas apstiprina vēlāku metodi un tās pieprasītos galvenes nosaukumus.

    Kāpēc aizstājējzīme var neizdoties ar akreditācijas datiem?

    Ja ir iekļauti sīkfaili vai HTTP autentifikācija, atļautajam avotam ir precīzi jāatbilst pieprasījuma izcelsmei. Aizstājējzīmes atļautajām metodēm un galvenes arī zaudē aizstājējzīmju nozīmi.

    Vai izturīgs rezultāts pierāda, ka tiešraides pieprasījums darbosies?

    Nē. Šis rezultāts aptver tikai ielīmēto atbildi un šeit ievadīto pieprasījuma informāciju. Novirzīšana, kešatmiņā saglabātās atbildes, servera noteikumu maiņa, pārlūkprogrammas paplašinājumi un faktiskā atbilde pēc pirmspārbaudes joprojām var mainīt rezultātu.