CORS Bevezetés kezdőknek

Kíváncsi, mi a CORS (kereszt eredetű erőforrás-megosztás)?


A kémfilmekben a biztonsági alkalmazottak kódolt módon továbbítják információjukat egymás között. Mivel többnyire olyan információkat továbbítanak, amelyeket fel lehet használni velük szemben, ha ellenségeik kezébe kerülnek, gondoskodniuk kell arról, hogy azok, akik információt kapnak, megbízható felek legyenek. Ugyanez vonatkozik azokra, akik az említett információkat továbbítják. Ha a feladó és a címzett megbízható, garantálható az információ hitelessége és biztonsága.

https://pt.slideshare.net/atirekgupta/selenium-workshop-34820044

Ennek a forgatókönyvnek a másolata történik a böngészők és a webszerverek közötti kommunikációban, és ezt nevezik azonos származású politika.

Az MDN szerint:

Az azonos származású politika egy kritikus biztonsági mechanizmus, amely korlátozza, hogy az egyik forrásból betöltött dokumentum vagy szkript hogyan tud kölcsönhatásba lépni egy másik forrásból származó erőforrással. Segít a potenciálisan rosszindulatú dokumentumok elkülönítésében, csökkentve a lehetséges támadási vektorokat.

Mi a CORS??

Valódi esetben, amikor a biztonsági szakemberek olyan szabályt adnak, hogy a kommunikációnak csak az operátorok között kell történnie, mint a biztonsági eszközre, ez hasonló az azonos származású politikához. Vannak azonban olyan esetek, amikor kapcsolatba kell lépniük a külvilággal. Vagy más biztonsági ruhák ügynökeivel, hogy ez megtörténjen, végrehajthatnak egy másik biztonsági intézkedést ellenőrizze az ügynökök. Ez a hitelesítés az alkalmazott operátoroktól függően eltérő módon lehetséges. Internetes kommunikáció esetén, CORS az a mechanizmus, amely lehetővé teszi a böngészők számára olyan erőforrások elérését, amelyekre eredetileg nem lesznek képesek, mert az erőforrások más eredetűek.

Eredeti eredetű erőforrás-megosztás (CORS) egy olyan mechanizmus, amely további HTTP-fejléceket használ arra, hogy a böngészőknek megmondják, hogy egy származási helyen futó webalkalmazáshoz hozzáférjenek-e egy másik forrásból származó kiválasztott erőforrások.

Már többször beszéltünk a származásról, és valószínűleg kíváncsi vagy, hogy ez mit jelent. A származást az URL protokollja, domainje és portja határozza meg. Ha az Ön API-ját olyan helyről érinti, mint például a https://api.geekflare.com:3001, és az Ön előlapját a https://geekflare.com, akkor az eredete eltérő. Ebben a helyzetben szüksége lesz a CORS-re, hogy mindkét végén hozzáférhessen az erőforrásokhoz.

Amikor egy kiszolgálóra kérést nyújtanak be, a böngészők (ügyfél) és a kiszolgálók kéréseket és válaszokat küldnek, a HTTP fejléceket tartalmazza. Ezek között a fejlécek között további fejlécek szerepelnek, amelyek megakadályozzák, hogy a böngésző blokkolja a kommunikációt.

Miért blokkolja a böngésző a kommunikációt??

A böngésző biztonsági funkciói. Ezt akkor is megteszi, ha a kérés az ügyféltől eltérő eredetű. A CORS eredményeként beillesztett további fejlécek lehetővé teszik az ügyfél számára, hogy tudja felhasználni a kapott választ.

CORS fejlécek

Az egyik biztonságos fejléc, amely lehet válasz vagy kérés fejléc.

Válasz fejlécek

Ezeket a fejléceket küldi vissza a szerver válaszában.

  • Hozzáférés-vezérlés-Engedélyezés-származás:: Ez a jelzi a kiszolgálón az erőforráshoz való hozzáférés engedélyezett eredetét. Megadható, hogy csak egy adott származási helyről érkező kérelmek megengedettek – Access-Control-Allow-Origin: https://geekflare.com, vagy hogy az origónak nincs jelentősége – Access-Control-Allow-Origin: *.
  • Access-Control-Expose-Headers:: Ahogy a neve is sugallja, ez felsorolja azokat a fejléceket, amelyekhez a böngésző hozzáfér.
  • Hozzáférés-vezérlés-Maximális életkor:: Ez az időtartam jelzi, ameddig az előzetes repülési kérésre adott válasz tárolható.
  • Hozzáférés-vezérlés-engedélyez-hitelesítő adatok:: Ez azt jelzi, hogy a böngésző felhasználhatja a választ, amikor az eredeti kérelem hitelesítő adatokkal történt..
  • Hozzáférés-vezérlés-engedélyezési módszerek:: Ez azt a módszert (módszereket) jelzi, amely megengedett egy erőforrás elérésekor.
  • Hozzáférés-vezérlés-engedélyez-fejlécek:: Ez azt jelzi, hogy a HTTP-fejlécek felhasználhatók kérésre.

Íme egy példa arra, hogyan fog kinézni a válasz

HTTP / 1.1 204 Nincs tartalom
Hozzáférés-ellenőrzés-engedélyez-származás: *
Hozzáférés-vezérlés-engedélyezési módszerek: GET, HEAD, PUT, PATCH, POST, DELETE
Vary: Hozzáférés-ellenőrzés-Kérés-fejlécek
Hozzáférés-vezérlés-engedélyez-fejlécek: Tartalom-típus, elfogadás
Tartalom hossza: 0
Dátum: 2019. november 16., szombat, 11:41:08 GMT + 1
Kapcsolat: tartsa életben

Fejlécek kérése

Itt vannak a fejlécek, amelyeket az ügyfél kérésének tartalmaznia kell a CORS mechanizmus használatához.

  • Eredet: Ez jelzi az ügyfél kérésének eredetét. Ha egy előlaplal és háttérrel dolgozik, amint azt korábban már említettük, akkor ez lesz a felhasználói felület alkalmazásának hostja.
  • Hozzáférés-vezérlés-kérés-módszer:: Ezt egy előzetes ellenőrzési kérelemben használják annak a HTTP módszernek a jelzésére, amelyet a kérés benyújtásához használnak.
  • Hozzáférés-vezérlés-Kérés-fejlécek:: Ezt az előkeresési kérelmet használják annak a HTTP-fejlécnek a jelzésére, amelyet a kérés elkészítéséhez használnak..

Íme egy példa arra, hogyan fog kinézni a kérés

curl -i -X ​​OPCIÓK localhost: 3001 / api \
-H ‘Hozzáférés-ellenőrzés-Kérés-módszer: GET’ \
-H ‘Hozzáférés-ellenőrzés-Kérés-fejlécek: Tartalom-típus, elfogadás’ \
-H ‘Származás: http: // localhost: 3000’

Előzetes repülési kérelmek

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

Miután megemlítette az előzetes repülési kérelmeket itt-ott, mit jelenthet ez??

Az előzetes átvilágítási kérelmek akkor fordulnak elő, amikor az ügyfélnek el kell küldenie az előkeresési kérelmet a fő kérés előtt. Az előzetes repülési igény inkább a szonda annak meghatározására, hogy a kiszolgáló támogatja-e a folyamatban lévő fő kérést. Ha pozitív visszaigazolást kapott, akkor a fő kérést elküldik.

Ha a kérelem nem előzetes átvilágítási kérés, akkor a neve lesz egyszerű kérés.

Végrehajtó CORS

Leginkább a dolgokat az alkalmazás hátterén szeretné beállítani. A megvalósítás az alkalmazott keretrendszertől függ. Ebben az oktatóanyagban megnézzük, hogyan lehet ezt csinálni a NodeJS és a Rails alkalmazásban.

sínek

Ajánlom, hogy használja a rack Cors drágakő. Akkor ezt hozzá kell adnia a config / application.rb fájlhoz.

config.middleware.insert_be 0, Rack :: Cors do
engedd meg
eredet ‘*’
forrás ‘*’,
fejlécek:: bármilyen,
kitettség:% i (hozzáférési jogkivonat lejárati token típusú uid kliens),
módszerek:% i (post post patch törlés opciók fejét kapja),
hitelesítő adatok: igaz
vég
vég

NodeJS

A Node.js-ban ez így néz ki.

app.all (‘*’, (req, res, next) => {
res.header (‘Hozzáférés-ellenőrzés-Engedélyezés’, ‘*’);
res.header („Hozzáférés-vezérlés-engedélyezési módszerek”, „PUT, GET, POST, DELETE, PATCH, OPTIONS HEAD”);
res.header (‘Hozzáférés-vezérlés-engedélyez-fejlécek’, ‘*’);
res.header (‘Hozzáférés-ellenőrzés-engedélyez-hitelesítő adatok’, igaz);
következő();
});

A kódrészletben beállítjuk az eredetét, a módszereket, a fejléceket és a hitelesítő adatokat, amelyek számára lehetővé kell tenni a kiszolgálón elérhető erőforrások elérését. Lehet, hogy pénzt is fizet Sqreen Ki nyújt biztonsági fejléc modult a Ruby, PHP, Python, Java, Go, Node.JS alkalmazásokba integrálásra. Az Apache vagy Nginx alkalmazásban történő végrehajtáshoz olvassa el ezt az útmutatót.

Következtetés

A CORS enyhíti a házirendet, hogy böngészője hozzáférhessen azokhoz az erőforrásokhoz, amelyekben szeretné. Ha megérti, mi az, miért elengedhetetlen, és hogyan kell beállítani, akkor segítséget nyújt annak meghatározásában, hogy milyen problémák merülhetnek fel a webes alkalmazások összeállításakor..

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map