Nginx

Kuidas kasutada CORS-i koos Nginxiga

Kuidas kasutada CORS-i koos Nginxiga

Mis on CORS

CORS, tuntud ka kui ristallikaga ressursside jagamine, on moodsates veebibrauserites kasutatav tehnika, mis kontrollib juurdepääsu veebiserveris hostitud ressurssidele. CORS kasutab täiendavaid päiseid, nagu päritolu, juurdepääsu kontrollimise päritolu ja palju muud, et teha kindlaks, kas taotletud ressursil on luba brauserisse saata. CORS-i esmane eesmärk on takistada veebibrauseris töötaval veebirakendusel juurdepääsu erinevast päritolust hostitud ressurssidele, kui luba puudub. See tähendab, et veebirakendus ei saa alla laadida ressursse, näiteks pilte, skripte, css igasugune sisu jne. kui neid ei hostita sama päritoluga (tavaliselt peaksid kõik olema samas domeenis) kui veebirakendus, kui server pole seadistatud sellist käitumist lubama. Võttes selle rakenduse veebibrauseris, saavad kasutajad kaitsta oma andmeid volitamata isikute eest. Häkker saab veebilehte salaja muuta, olles samal ajal ühenduse keskel, et häirida kasutaja äri või pääseda juurde väärtuslikele andmetele. Siiski on ka CORS-i eeliseid, näiteks see võimaldab arendajatel kulutasuvuse või lihtsalt mugavuse tõttu laadida erinevat päritolu ressursse. Sellisel juhul peavad nad selliste taotluste lubamiseks oma veebiserverit muutma. See artikkel näitab, kuidas seda Nginxi veebiserveris hõlpsalt teha.

Mida käivitab CORS-i taotlus

Kõik taotlused ei käivita CORS-i päringut, kuna ressursse hostitakse tavaliselt veebirakendusega samast päritolust. Kui see on erinev, siis käivitatakse CORS. CORS-l on kahte tüüpi taotlusi, lihtsad taotlused ja CORS-i eelnevalt lendatud taotlused.

Simple Request töötab tavalise päringuna, veebibrauser saadab serverile taotluse konkreetse ressursi allalaadimiseks, kui kasutaja selle algatas, seejärel kontrollib veebiserver päringu päritolu, võrdleb seda veebiserveri reeglitega, kui see on sobitatud, antakse ressurss. Selle päringu tüüp kasutab OIRIGN- ja ACCESS-CONTROL-ALLOW-ORIGIN päiseid, et otsustada, kas ressurss tuleks tarnida või mitte. Lihtpäring käivitatakse ainult siis, kui kasutatakse päringumeetodeid nagu GET, HEAD, POST ja kasutatakse selliseid päiseid nagu Accept, Accept-Language, Content-Language, Content-Type, DPR, Downlink, Save-Data, Viewport-Width, Width. Isegi siis ei käivita kõik sisutüübid lihtsat taotlust. Siin käivitavad lihtsa taotluse ainult vormikodeeringutüübid.

Eelnevalt lennatud päringu tüüp on pigem erinev, kuna esimesel ringil puudub otsene juurdepääs ressurssidele. Kui eeltoodud tingimusi kuidagi muudetakse, kas kasutades erinevat päringu päist või erinevat sisutüüpi, käivitatakse enne lendu tehtud taotlus. Enne lendu tehtud taotlustes kontrollib veebibrauser esmalt, et see pääseb ressursile juurde, suheldes veebibrauseriga, seejärel kui veebibrauser vastas korralikult (HTTP 200), siis saadab ta uue taotluse ressursi allalaadimiseks. Esimese päringu algatamiseks kasutatakse HTTP OPTION-i päringumeetodit, seejärel kasutatakse ressursside allalaadimiseks GET-, POST-tüüpi päringutüüpe.

Kuidas konfigureerida Nginx CORS-i taotlusi toetama

Selles jaotises on näidatud, kuidas konfigureerida nginxi veebiserver ressursside ristkasutamise lubamiseks. Seda saab teha ainult siis, kui arendajal on juurdepääs veebiserverile, kuna see hõlmab Nginxi konfiguratsioonifaili muutmist.

CORS-i taotluste lubamiseks kasutage järgmist lihtsat koodilõiku. See tuleb kopeerida Ubuntu või mõne muu platvormi nginx-teenuse vaikefaili.

asukoht \
if ($ request_method = 'VALIKUD')
add_header 'Juurdepääsukontroll-Luba-Päritolu' https: // localhost;
add_header 'Juurdepääsukontroll-Luba-meetodid "POST, VALIKUD";
add_header 'Juurdepääsukontroll-Max-vanus' 1728000;
add_header 'Sisutüüp "text / plain; charset = utf-8';
tagasipöördumine 204;

if ($ request_method = 'POST')
add_header 'Juurdepääsukontroll-Luba-Päritolu' https: // localhost;
add_header 'Juurdepääsukontroll-Luba-meetodid' 'POST';

Põhiline koodilõik läheb nagu eespool. See sisaldab päringu tüübi tuvastamiseks selliseid direktiive nagu request_method, add_header ja brauseri jaoks vastuse päise vastavalt lugemiseks. Päis Access-control-allow-origin määratleb, millisele päritolule ressursil on juurdepääs, näiteks kui githubis hostitud veebirakendus soovib juurde pääseda myOwnServeris hostitud pildile.com, siis tuleks githubi URL-i kasutada saidi myOwnServer juurdepääsukontroll-luba-päritolu-direktiivi väärtusena.com, siis alati, kui githubis hostitud veebirakendus saadab myOwnServerile päringuid.com pildifaili allalaadimiseks antakse neile kõigile taotletud luba. Pääsukontroll-luba-meetodi päis määratleb, milliseid päringutüüpe veebipõhine rakendus, mis päringuid saadab, toetab, seejärel on ülejäänud päised päringute vahemälu maksimaalse vanuse jaoks ja toetatud sisutüüp.

Nagu eespool kirjeldatud, saadab brauser pärast OPTION-päringu täitmist uue taotluse ressursside allalaadimiseks, kui esimene taotlus õnnestus, selle päised määratakse sulgudes esimesse request_method.

Lisaks ülalmainitud direktiividele on Nginxis veel mõned olulised direktiivid, mida saab kasutada CORS-i taotlustes. Üks olulisemaid direktiive on juurdepääsukontroll-luba-päised, mis on brauseri kontrollimiseks lubatud päisenimedega vastuse päise seadmine. Veebirakendusel võivad olla mitmel otstarbel oma päised ja kui sellised päised esinevad järgmistes taotlustes pärast esialgset OPTIONS-päringut, peaksid veebiserver lubama kõik need päised enne soovitud ressursi jagamist.

On oluline, et see koodijupp oleks Nginxi vaikefailis õiges kohas, sest Nginx käivitab erinevad asukohablokid sõltuvalt sobitatud URL-ist, kui selline asukohablokk seda koodilõiku ei sisalda, siis seda ei täideta üldse, ja seetõttu on turvalise külje jaoks oluline seda kasutada kõikides asukohaplokkides. Mõned olulised asukohablokid on Images, PHP (~ \.php $), CSS jne ... blokeerib.

Kui ülalmainitud koodijupp on salvestatud, salvestage Nginx-fail ja laadige Nginx-teenus muudatuste jõustumiseks uuesti sisse.

Järeldus

CORS on tuntud kui päritoluüleste ressursside jagamine ja see on meetod ressursside juurdepääsu kontrollimiseks. Need ressursid võivad olla mis tahes failid pildist JavaScripti failini. CORS-i esmane eesmärk on tugevdada veebirakenduste turvalisust, et vältida inimese rünnakuid keskel. Kuid ka CORS-il võib olla eeliseid. Sel juhul tuleb CORS sisse lülitada, kuna see pole vaikimisi lubatud. Põhiline CORS-päringu tüüp on lihtne päringutüüp, see kasutab ainult direktiive ORIGIN ja ACCESS-CONTROL-ALLOW-ORIGIN ning selle abiga saab Nginx anda veebibrauserile loa taotletud ressurssidele juurdepääsuks, sõltuvalt päritolust. Mõlemal juhul on CORS üsna kasulik ja seda tuleks hoolikalt kasutada.

10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...
5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...
Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...