Hvernig á að virkja CORS í Apache og Nginx?

Takmarka eða leyfa samnýtingu auðlinda milli vefsvæða sem nota CORS haus.


CORS (Cross-Origin Resource Sharing) haus er stutt í öllum nútíma vöfrum.

Get ég notað kors? Gögn um stuðning við cors eru í helstu vöfrum frá caniuse.com.

Sjálfgefið er að vafrinn takmarkar HTTP beiðnir milli uppruna í gegnum forskriftir. Og, CORS getur verið handhægt til að endurnýta sameiginlega auðlindir forritsins í öðrum vefforritum. Þegar því er bætt rétt er það leiðbeint vafranum að hlaða forritið af öðrum uppruna.

Það eru sex vinsælar gerðir af CORS hausum sem netþjónn getur sent. Við skulum kanna þau.

Aðgangsstýring-Leyfa uppruna

Sá vinsælasti sem hann segir vafranum að hlaða auðlindirnar á leyfilegum uppruna. Það styður villikort (*) og gerir það að hvaða lén sem er getur hlaðið auðlindunum. En það hefur möguleika á að leyfa ákveðinn uppruna.

Apache

Bættu við eftirfarandi í httpd.conf eða annarri notkunarstillingarskrá.

Hausstilla aðgangsstýring-Leyfa uppruna "*"

Endurræstu Apache til að prófa. Þú ættir að sjá þá í svarihausum.

Og til að leyfa frá tilteknum uppruna (til dæmis: https://gf.dev) geturðu notað eftirfarandi.

Hausstilla aðgangsstýring-Leyfa uppruna "https://gf.dev"

Nginx

Hér er dæmi til að leyfa uppruna https://geekflare.dev. Bættu við eftirfarandi í netþjónabálkinn fyrir nginx.conf eða stillingarskrá sem er í notkun.

add_header Aðgangsstýring-Leyfa uppruna "https://geekflare.dev";

Aðgangsstýringar-Leyfa aðferðir

Vafrinn getur hafið eina eða fleiri HTTP aðferðir til að fá aðgang að auðlindunum. Dæmi: – FÁ, PUT, OPTIONS, PUT, DELETE, POST

Apache

Að leyfa aðeins GET og POST.

Fyrirsögn bæta við aðgangsstýringu-Leyfa aðferðum "FÁ, póst"

Nginx

Segjum að þú þarft að bæta við DELETE og OPTIONS aðferðum, þá geturðu bætt við eins og hér að neðan.

add_header Aðgangsstýring-Leyfa aðferðir "EYÐA, Valkostir";

Eftir endurræsinguna ættirðu að sjá þá í svarihausunum.

Aðgangsstýring-Leyfa hausa

Eftirfarandi hausar eru í safelist sem þýðir að þú þarft ekki að bæta við einum. Það ætti að virka sjálfgefið.

  • Innihaldsgerð
  • Taka
  • Innihaldstungumál
  • Samþykkja-tungumál

Hins vegar, ef þú þarft að bæta við sérsniðnum, geturðu gert það. Það styður einn eða fleiri hausa.

Apache

Segjum sem svo að þú viljir leyfa X-Custom-haus og X-Powered-By hausa.

Fyrirsögn stillir alltaf aðgangsstýringu-leyfir hausum "X-sérsniðin haus, X-knúin af"

Eftir endurræsingu ættirðu að sjá niðurstöðuna í svarihausum.

Nginx

Dæmi um að bæta við X-Customer-Software og X-My-Custom hausnum.

add_header Aðgangsstýring-Leyfa hausa "X-Custom-hugbúnaður, X-My-Custom";

Aðgangsstýringar-afhjúpa-hausa

Eftirfarandi hausar eru þegar öruggir listar. Þýðir, þú þarft ekki að bæta við ef þú vilt fletta ofan af þeim.

  • Rennur út
  • Pragma
  • Skyndiminni
  • Síðast breytt
  • Innihaldstungumál
  • Innihaldsgerð

En ef þú þarft annað en öruggan lista, þá geturðu leyft þeim að fylgja því.

Apache

Notaðu villikort til að afhjúpa allar hausar.

Fyrirsögn stillir alltaf aðgangsstýringar-afhjúpa hausa "*"

Athugasemd: Almennt villti ekki út höfundarheimild og ef þú þarft slíkt, verður þú að nefna það sérstaklega.

Fyrirsögn stillir alltaf aðgangsstýringar-afhjúpa hausa "Heimild, *"

Niðurstaðan ætti að líta svona út.

Nginx

Ef þú vilt afhjúpa Origin haus.

add_header aðgangsstýringar-afhjúpa hausa "Uppruni";

Aðgangsstýring-max-aldur

Veistu gögnin frá hausum með aðgangsstýringu-Leyfa hausum og aðgangsstýringu-Leyfa aðferðir hægt að afrita? Hægt er að taka skyndiminni í allt að 24 klukkustundir í Firefox, 2 klukkustundir í Chrome (76+).

Til að slökkva á skyndiminni geturðu haldið gildi sem -1

Apache

Að skyndiminni í 15 mínútur.

Fyrirsögn stillir alltaf Access-Control-Max-Age "900"

Eins og þú sérð er gildið í sekúndum.

Nginx

Að skyndiminni í eina klukkustund.

add_header Access-Control-Max-Age "3600";

Þegar búið er að bæta því við skaltu endurræsa Nginx til að sjá árangurinn.

Aðgangsstýring-Leyfa skilríki

Það er aðeins einn valkostur til að stilla hér – satt. Þetta er til að leyfa ef þú vilt afhjúpa skilríki eins og smákökur, TLS vottorð, heimild.

Apache

Fyrirsögn stillir alltaf aðgangsstýringu-Leyfir skilríki "satt"

Nginx

add_header Aðgangsstýring-Leyfa skilríki "satt";

og niðurstaðan.

Staðfestir árangurinn

Þegar nauðsynlegum hausum er bætt við geturðu annað hvort notað innbyggða verkfæratæki vafrans eða netinu HTTP haus afgreiðslumaður.

Niðurstaða

Ég vona að ofangreint hjálpi þér að innleiða CORS haus í Apache HTTP og Nginx vefþjóninum fyrir betra öryggi. Þú gætir líka haft áhuga á að beita OWASP öruggum hausum.

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