CORS kynning fyrir byrjendur

Veltirðu fyrir þér hvað er CORS (samnýtingu auðlindamiðla yfir uppruna)?


Í njósnamyndum hafa öryggisaðilar dulritaðan hátt til að senda upplýsingar sín á milli. Þar sem þeir eru að mestu að senda upplýsingar sem hægt er að nota gegn þeim ef þær falla í hendur óvina þeirra verða þeir að gæta þess að þeir sem fá upplýsingarnar séu traustir aðilar. Sama á við um þá sem eru að senda umræddar upplýsingar. Þegar sendanda og móttakara er treyst, er hægt að tryggja trúverðugleika og öryggi upplýsinganna.

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

Eftirmynd af þessari atburðarás gerist í samskiptum vafra og netþjóna og kallast hún stefna af sömu uppruna.

Samkvæmt MDN:

The stefna af sömu uppruna er mikilvægur öryggisbúnaður sem takmarkar hvernig skjal eða handrit hlaðinn frá einum uppruna geta haft samskipti við auðlind frá öðrum uppruna. Það hjálpar til við að einangra hugsanlega skaðleg skjöl og draga úr mögulegum árásarvektum.

Hvað er CORS?

Í raunverulegu tilfelli, þegar öryggisaðilar setja reglu um að samskipti ættu aðeins að eiga sér stað meðal þeirra sem starfa sem öryggi, þá er það svipað og stefna af sömu uppruna. Samt geta verið tilvik þar sem þeir þurfa að eiga samskipti við umheiminn. Eða með aðilum annarra öryggisfatnaðar, til þess að það geti gerst, geta þeir framkvæmt aðra öryggisráðstöfun til sannreyna þeir aðgerðarmenn. Þessi sannprófun getur komið á mismunandi vegu eftir því hvaða aðgerðarmenn taka þátt. Ef um er að ræða samskipti á Netinu, CORS er það fyrirkomulag sem gerir það mögulegt fyrir vafra að nota aðgang að auðlindum sem þeir upphaflega geta ekki gert vegna þess að vefsíðan er af öðrum uppruna.

Cross-Origin Resource Sharing (CORS) er vélbúnaður sem notar viðbótar HTTP hausa til að segja vöfrum að gefa vefforrit sem keyrir á einum uppruna, aðgang að völdum auðlindum frá öðrum uppruna.

Ég hef talað um uppruna oftar en einu sinni og þú ert líklega að spá í hvað það þýðir. Uppruni er skilgreindur með siðareglum, léni og höfn slóðarinnar. Þegar þú ert með API á uppruna eins og https://api.geekflare.com:3001 og framendinn þinn á https://geekflare.com eru uppruna sagðir vera mismunandi. Í þessum aðstæðum þarftu CORS til að geta nálgast auðlindir í báðum endum.

Þegar beiðnir eru sendar til netþjóns, vafrarnir (viðskiptavinurinn) og netþjónarnir senda beiðnir og svör eru HTTP hausar með. Meðal þessara hausa eru viðbótarhausar til að koma í veg fyrir að vafrinn hindri samskiptin.

Af hverju lokar vafrinn á samskiptin?

Öryggisaðgerðir vafrans. Það mun gera það ef beiðnin kemur frá öðrum uppruna en viðskiptavinarins. Viðbótarhausarnir sem fylgja með vegna CORS er leið til að segja viðskiptavininum að hann geti nýtt svarið sem hann fékk.

CORS hausar

Ein af öruggum hausum sem geta verið annað hvort svar eða beðið um haus.

Svörunarhausar

Þetta eru hausarnir sem miðlarinn sendir til baka í svari sínu.

  • Aðgangsstýring-Leyfa uppruna:: Þetta er notað til að tilgreina uppruna sem leyft er að fá aðgang að vefsíðunni á netþjóninum. Það er hægt að tilgreina að aðeins beiðnir frá ákveðnum uppruna séu leyfðar – Aðgangsstýring-Leyfa uppruna: https://geekflare.com, eða að uppruni skiptir ekki máli – Aðgangsstýring-Leyfa uppruna: *.
  • Aðgangsstýring-afhjúpa haus:: Eins og nafnið gefur til kynna, þá er listi yfir þá hausa sem vafrinn hefur aðgang að.
  • Aðgangsstýring-Hámarksaldur:: Þetta gefur til kynna tímalengd sem hægt er að afrita svör við forstillingarbeiðni.
  • Aðgangsstýring-Leyfa skilríki:: Þetta gefur til kynna að vafrinn geti nýtt svarið þegar upphafleg beiðni var gerð með persónuskilríki.
  • Aðgangsstýringar-Leyfa aðferðir:: Þetta gefur til kynna aðferðina / aðferðina sem leyfðu þegar reynt var að fá aðgang að auðlindinni.
  • Aðgangsstýring-Leyfa haus:: Þetta gefur til kynna að hægt er að nota HTTP hausa í beiðni.

Hér er dæmi um hvernig svarið mun líta út

HTTP / 1.1 204 Ekkert innihald
Aðgangsstýring-Leyfa uppruna: *
Aðgangsstýringar-Leyfa aðferðir: GET, HEAD, PUT, PATCH, POST, DELETE
Vary: Aðgangsstýringar-beiðni-hausar
Aðgangsstýringar-Leyfa hausar: Innihaldsgerð, samþykkja
Innihaldslengd: 0
Dagsetning: lau, 16 nóvember 2019 11:41:08 GMT + 1
Tenging: halda lífi

Biðja um haus

Hér eru fyrirsagnirnar sem beiðni viðskiptavinar ætti að innihalda til að nota CORS-kerfið.

  • Uppruni:: Þetta gefur til kynna uppruna beiðni viðskiptavinarins. Þegar þú vinnur með framendis og afturendingu, eins og áður sagði, mun þetta vera gestgjafi framendisforritsins þíns.
  • Aðgangsstýring-beiðni-aðferð:: Þetta er notað í preflight beiðni til að gefa til kynna HTTP aðferð sem verður notuð til að koma beiðninni.
  • Aðgangsstýringar-beiðnihausar:: Þetta er notað í preflight beiðni til að gefa til kynna HTTP hausana sem verða notaðir til að leggja fram beiðnina.

Hér er dæmi um hvernig beiðni mun líta út

krulla -i -X ​​valkostir localhost: 3001 / api \
-Aðgangsstýring-beiðni-aðferð: GET ‘\
-H ‘Aðgangsstýringar-beiðni-hausar: Innihaldstegund, samþykkja’ \
-Uppruni H: http: // localhost: 3000 ‘

Forgangsbeiðnir

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

Eftir að hafa minnst á forstillingarbeiðnir hingað og þangað, hvað gæti það mögulega þýtt?

Forgangsbeiðnir eiga sér stað þegar viðskiptavinurinn þarf að senda preflight beiðni fyrir aðalbeiðnina. Forljósabeiðnin er meira en rannsaka til að ákvarða hvort netþjónninn styðji aðalbeiðnina sem er að fara að gera. Þegar jákvæð staðfesting fæst er aðalbeiðnin síðan send.

Þegar beiðni er ekki preflight beiðni kallast hún a einföld beiðni.

Framkvæmd CORS

Þú vilt að mestu leyti setja upp hluti aftan á umsókn þína. Framkvæmdin fer eftir umgjörðinni sem þú notar. Fyrir þessa kennslu munum við skoða hvernig á að gera það í NodeJS og Rails.

Teinar

Ég mæli með að þú notir rekki-kors gimsteinn. Þá þarftu að bæta þessu við config / application.rb skrána.

config.middleware.insert_before 0, Rack :: Cors do
leyfa gera
uppruni ‘*’
auðlind ‘*’,
haus:: hvaða,
afhjúpa:% i (úid viðskiptavinur aðgangs-token fyrningartegundartegundar tegundar),
aðferðir:% i (fá færslu setja eyðingu valmöguleika fyrir haus),
skilríki: satt
enda
enda

NodeJS

Í Node.js mun þetta líta svona út.

app.all (‘*’, (req, res, next) => {
res.header (‘Aðgangsstýring-Leyfa uppruna’, ‘*’);
res.header (‘Aðgangsstýring-leyfa aðferðir’, ‘PUT, GET, POST, DELETE, PATCH, OPTIONS HEAD’);
res.header (‘Aðgangsstýring-Leyfa hausa’, ‘*’);
res.header (‘Aðgangsstýring-Leyfa skilríki’, satt);
næst ();
});

Í kóðaútgáfunni erum við að setja upp uppruna, aðferðir, haus og persónuskilríki sem ætti að vera leyft að fá aðgang að auðlindunum sem eru tiltækar á netþjóninum okkar. Þú gætir líka skoðað Sqreen sem býður upp á öryggiseiningareiningar til að samþætta Ruby, PHP, Python, Java, Go, Node.JS forritum. Og til að útfæra í Apache eða Nginx, vísaðu í þessa handbók.

Niðurstaða

CORS slakar á stefnunni svo að vafrinn þinn geti fengið aðgang að þeim úrræðum sem þú vilt hafa það. Að skilja hvað það er, hvers vegna það er grundvallaratriði og hvernig á að setja það upp mun hjálpa til við að reikna út vandamálin sem þú gætir orðið fyrir þegar þú byggir vefforritin þín.

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