CORS Inleiding vir beginners

Vra jy jouself af wat CORS is (hulpbrondeling tussen oorsprong)?


In spionfilms het veiligheidsaktiwiteite ‘n gekodeerde manier om inligting onder mekaar oor te dra. Aangesien hulle meestal inligting uitstuur wat teen hulle gebruik kan word as dit in die hande van hul vyande val, moet hulle seker maak dat diegene wat die inligting ontvang vertrou partye. Dieselfde geld vir diegene wat die genoemde inligting stuur. As die sender en ontvanger vertrou word, kan die geloofwaardigheid en sekuriteit van die inligting gewaarborg word.

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

‘N Replika van hierdie scenario vind plaas in die kommunikasie tussen blaaiers en webbedieners, en dit word die beleid van dieselfde oorsprong.

Volgens MDN:

Die beleid van dieselfde oorsprong is ‘n kritieke sekuriteitsmeganisme wat beperk hoe ‘n dokument of skrif wat van een oorsprong gelaai is, met ‘n hulpbron van ‘n ander oorsprong kan kommunikeer. Dit help om potensieel kwaadwillige dokumente te isoleer, en verminder moontlike aanvalvektore.

Wat is CORS?

In ‘n werklike geval, wanneer sekuriteitsoperateurs ‘n reël gee dat kommunikasie slegs tussen sy of haar amptenare moet plaasvind as ‘n veiligheidsmiddel, stem dit ooreen met dieselfde beleid van dieselfde oorsprong. Tog kan daar gevalle wees waar hulle met die buitewêreld moet omgaan. Of saam met mense van ander veiligheidsuitrustings, om dit te kan doen, kan hulle ‘n ander veiligheidsmaatreël tref verifieer daardie operatiewe. Hierdie verifikasie kan op verskillende maniere kom, afhangende van die betrokkenes. In die geval van kommunikasie op die internet, kor is die meganisme wat dit moontlik maak vir blaaiers om toegang te verkry tot hulpbronne wat hulle oorspronklik nie sal kan doen nie, omdat die bron van ‘n ander oorsprong is.

Cross-Origin Resource Sharing (CORS) is ‘n meganisme wat addisionele HTTP-opskrifte gebruik om blaaiers te vertel dat hulle ‘n webtoepassing met een oorsprong gee, toegang tot geselekteerde bronne van ‘n ander oorsprong.

Ek het meer as een keer oor oorsprong gepraat, en jy wonder waarskynlik wat dit beteken. ‘N Oorsprong word gedefinieer deur die protokol, domein en poort van die URL. As u u API op ‘n oorsprong soos https://api.geekflare.com:3001 en u frontend by https://geekflare.com het, word gesê dat die oorsprong anders is. In hierdie situasie het u CORS nodig om aan beide kante toegang tot hulpbronne te hê.

Wanneer versoeke aan ‘n bediener gerig word, die blaaiers (kliënt) en bedieners versoeke en antwoorde stuur, word HTTP-kopstukke ingesluit. Bykomende opskrifte is onder hierdie kopstukke om te voorkom dat die blaaier die kommunikasie blokkeer.

Waarom sal die blaaier die kommunikasie blokkeer??

Die blaaier sekuriteit funksies. Dit sal dit doen as die versoek afkomstig is van ‘n ander oorsprong as die van die kliënt. Die bykomende opskrifte wat as gevolg van CORS ingesluit is, is ‘n manier om die kliënt te vertel dat hy gebruik kan maak van die reaksie wat hy ontvang het.

CORS-kopstukke

Een van die veilige opskrifte wat reaksie of ‘n versoekkop kan wees.

Antwoordopskrifte

Dit is die opskrifte wat die bediener terugstuur in sy antwoord.

  • Access-Control-Allow-Origin:: Dit word gebruik om die oorsprong te spesifiseer wat toegelaat word om toegang tot die bron op die bediener te kry. Dit is moontlik om aan te dui dat slegs versoeke van ‘n spesifieke oorsprong toegelaat word – Access-Control-Allow-Origin: https://geekflare.com, of dat die oorsprong nie saak maak nie – Access-Control-Allow-Origin: *.
  • Access-Control-Expose-Headers: Soos die naam aandui, word ‘n lys van die opskrifte waartoe die blaaier toegang het.
  • Toegangsbeheer-maksimum-ouderdom:: dit dui die tydsduur aan waarop die antwoord van ‘n vooraflig-versoek gekas kan word.
  • Toegangsbeheer-toestaan-geloofsbriewe:: dit dui aan dat die blaaier die antwoord kan gebruik wanneer die aanvanklike versoek met ‘n geloofsbrief gemaak is.
  • Toegangsbeheer-toelaat-metodes:: dit dui die metode (s) aan wat toegelaat is om toegang tot ‘n bron te verkry.
  • Toegangsbeheer-toelaat-opskrifte:: Dit dui aan dat die HTTP-opskrifte in ‘n versoek gebruik kan word.

Hier is ‘n voorbeeld van hoe die reaksie sal lyk

HTTP / 1.1 204 Geen inhoud
Toegangsbeheer-laat toe-oorsprong: *
Toegangsbeheer-toestemmingsmetodes: KRY, HOOF, PUT, PATCH, POST, DELETE
Wissel: Toegangsbeheer-versoek-hoofde
Toegangsbeheer-toelaat-hoofde: inhoudstipe, aanvaar
Inhoud-lengte: 0
Datum: Sat, 16 Nov 2019 11:41:08 GMT + 1
Verbinding: bly leef

Versoek opskrifte

Hier is die opskrifte wat die versoek van ‘n kliënt moet bevat om gebruik te maak van die CORS-meganisme.

  • Oorsprong: Dit dui die oorsprong van die kliënt se versoek aan. As u met ‘n frontend en backend werk, soos voorheen gesê, is dit die gasheer van u frontend-aansoek.
  • Toegangsbeheer-versoek-metode: dit word gebruik in ‘n voorafligversoek om die HTTP-metode aan te dui wat gebruik sal word om die versoek te rig.
  • Access-Control-Request-Headers:: dit word gebruik in ‘n voorafligversoek om die HTTP-kopstukke aan te dui wat gebruik sal word om die versoek te rig.

Hier is ‘n voorbeeld van hoe ‘n versoek sal lyk

krul -i -X ​​OPSIES localhost: 3001 / api \
-H ‘Toegangsbeheer-versoek-metode: GET’ \
-H ‘Toegangsbeheer-versoek-hoofde: inhoudstipe, aanvaar’ \
-H ‘Oorsprong: http: // localhost: 3000’

Vragversoeke

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

Wat kan dit moontlik beteken nadat u vooraf en weer verwysings gevra het??

Vragvragversoeke vind plaas wanneer die kliënt ‘n voorafligversoek moet stuur voor die hoofversoek. Die voorafligversoek is meer van ‘n ondersoek om te bepaal of die bediener die hoofversoek ondersteun wat gaan rig. As positiewe bevestiging verkry word, word die hoofversoek dan gestuur.

As ‘n versoek nie ‘n voorafligversoek is nie, word dit ‘n eenvoudige versoek.

Implementering van CORS

U sal meestal dinge aan die agterkant van u aansoek wil opstel. Die implementering hang af van die raamwerk wat u gebruik. Vir hierdie handleiding sal ons kyk hoe u dit in NodeJS en Rails kan doen.

relings

Ek beveel aan dat u gebruik maak van die rek-kor juweel. Dan sal u dit by u config / application.rb-lêer moet voeg.

config.middleware.insert_before 0, Rack :: Cors doen
laat doen
oorsprong ‘*’
hulpbron ‘*’,
opskrifte:: enige,
ontbloot:% i (uid-kliënt vir toegangstoken-token-tipe uid-kliënt),
metodes:% i (kry ‘n boodskap vir die verwydering van opsies vir kopstuk),
geloofsbriewe: waar
einde
einde

NodeJS

In Node.js sal dit so lyk.

app.all (‘*’, (vraag, res, volgende) => {
res.header (‘Toegangsbeheer-toestaan-herkoms’, ‘*’);
res.header (‘Toegangsbeheer-toelaat-metodes’, ‘PUT, GET, POST, DELETE, PATCH, OPTIONS HEAD’);
res.header (‘Toegangsbeheer-toestaan-hoofde’, ‘*’);
res.header (‘Toegangsbeheer-toestaan-geloofsbriewe’, waar);
volgende ();
});

In die kodeblad stel ons die oorsprong, metodes, opskrifte en geloofsbriewe op wat toegelaat moet word om toegang te verkry tot die beskikbare bronne op ons bediener. U kan ook betaal Sqreen wat ‘n module met sekuriteitsopskrifte bied wat geïntegreer kan word met Ruby, PHP, Python, Java, Go, Node.JS-toepassings. Verwys na hierdie handleiding en implementeer dit in Apache of Nginx.

Afsluiting

CORS verslap die beleid sodat u blaaier toegang het tot die bronne waarheen u dit wil hê. Om te verstaan ​​wat dit is, waarom dit noodsaaklik is, en hoe om dit op te stel, sal help om die probleme wat u in die gesig staar tydens die bou van u webtoepassings te bepaal..

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