Hogyan lehet engedélyezni a CORS-t az Apache-ban és az Nginx-ben?

Korlátozza vagy engedje meg az erőforrások megosztását a helyek között a CORS fejléc segítségével.


A CORS (Cross-Origin Resource Sharing) fejlécet minden modern böngésző támogatja.

Használhatok féleket? A coi szolgáltatás támogatásának adatai a fő böngészőkben a caniuse.com webhelyről.

Alapértelmezés szerint a böngésző szkriptek útján korlátozza az eredendő HTTP kéréseket. És, CORS hasznos lehet a közös alkalmazás-erőforrások más webes alkalmazásokon történő újrafelhasználása érdekében. A helyes hozzáadás után azt utasítja a böngészőnek, hogy töltsék be az alkalmazást más származású helyről.

Hat népszerű CORS fejléctípus létezik, amelyeket egy szerver küldhet. Fedezzük fel őket.

Access-Control-Allow-Origin

A legnépszerűbb, amely azt mondja a böngészőnek, hogy töltse be az erőforrásokat az engedélyezett származási helyre. Támogatja a helyettesítő karaktereket (*), és így bármilyen domain betöltheti az erőforrásokat. Ennek ellenére lehetősége van egy adott származás engedélyezésére.

Apache

Adja hozzá a következőt a httpd.conf fájlhoz vagy bármely más használatban lévő konfigurációs fájlhoz.

A fejléc beállítása hozzáférés-vezérlés-engedélyez-származás "*"

Indítsa újra az Apache-t a teszteléshez. A válasz fejlécében látnia kell őket.

És egy adott származási hely (például: https://gf.dev) engedélyezéséhez használhatja a következőket.

A fejléc beállítása hozzáférés-vezérlés-engedélyez-származás "https://gf.dev"

nginx

Íme egy példa a https://geekflare.dev származási hely engedélyezésére. Adja hozzá az alábbiakat az nginx.conf vagy a használatban lévő konfigurációs fájl szerverblokkjához.

add_header Hozzáférés-vezérlés-Engedélyezés-származás "https://geekflare.dev";

Access-Control-Allow-módszerek

A böngésző kezdeményezhet egy vagy több HTTP-módszert az erőforrások eléréséhez. Például: – GET, PUT, OPTIONS, PUT, DELETE, POST

Apache

Csak a GET és a POST engedélyezése.

Fejléc hozzáadása Hozzáférés-vezérlés-Engedélyezési módszerek "GET, POST"

nginx

Tegyük fel, hogy hozzá kell adnia a TÖRLÉS és az OPTIONS módszereket, majd hozzáadhatja az alábbiak szerint.

add_header Hozzáférés-vezérlés-Engedélyezési módszerek "TÖRLÉS, OPCIÓK";

Az újraindítás után látnia kell őket a válasz fejlécében.

Access-Control-Allow-fejlécek

A következő fejlécek safelist listában vannak, tehát nem kell hozzátenni. Alapértelmezés szerint működnie kell.

  • Tartalom típus
  • Elfogad
  • Content-Language
  • Accept-Language

Ha azonban hozzá kell adnia egyéni, megteheti. Támogat egy vagy több fejlécet.

Apache

Tegyük fel, hogy engedélyezni szeretné az X-Custom-Header és az X Powered-By fejléceket.

A fejléc mindig állítsa be a Hozzáférés-vezérlés-Engedélyezés-fejléceket "X-Custom-Header, X-Powered-By"

Újraindítás után az eredmény fejlécekben kell megjelennie.

nginx

Példa az X-Customer-Software és az X-My-Custom fejléc hozzáadására.

add_header Hozzáférés-vezérlés-Engedélyezés-fejlécek "X-Custom-szoftver, X-My-Custom";

Access-Control-Leplezd-fejlécek

A következő fejlécek már biztonságos listát jelentenek. Ez azt jelenti, hogy nem kell hozzátennie, ha ki akarja tárni őket.

  • Lejár
  • Pragma
  • Cache-Control
  • Utoljára módosítva
  • Content-Language
  • Tartalom típus

De ha a biztonságos listán kívül másra van szüksége, akkor engedélyezheti őket az alábbiak szerint.

Apache

Használjon helyettesítő karaktert az összes fejléc megjelenítéséhez.

A fejléc mindig állítsa be az Access-Control-Expose-Headers beállítást "*"

Megjegyzés: a helyettesítő karakter még mindig nem adja ki az engedélyezési fejlécet, és ha szüksége van rá, akkor ezt kifejezetten meg kell említeni.

A fejléc mindig állítsa be az Access-Control-Expose-Headers beállítást "Engedély, *"

Az eredménynek így kell kinéznie.

nginx

Ha ki akarja mutatni az Eredeti fejlécet.

add_header Hozzáférés-vezérlés-Exponálás-fejlécek "Eredet";

Access-Control-Max-kor

Tudja-e az Access-Control-Allow-Headers és az Access-Control-Allow-Methods fejlécek adatait gyorsítótárban? Gyorsítótárban tárolható akár 24 órán keresztül a Firefoxban, 2 órán keresztül a Chrome-ban (76+).

A gyorsítótárazás letiltásához az értéket -1-nél tarthatja

Apache

15 perc gyorsítótárazás.

A fejléc mindig állítsa be az Access-Control-Max-Age-t "900"

Mint láthatja, az érték másodpercben van megadva.

nginx

Egy órán keresztül gyorsítótárba helyezni.

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

Miután hozzáadta, indítsa újra az Nginx-et az eredmények megtekintéséhez.

Access-Control-Allow-bizonyítványok

Csak egy lehetőséget lehet itt beállítani – igaz. Ez lehetővé teszi, hogy hitelesítő adatokat, például sütiket, TLS-tanúsítványokat, engedélyeket tegyen közzé.

Apache

A fejléc mindig állítsa be az Access-Control-Allow-Credentials-t "igaz"

nginx

add_header Hozzáférés-vezérlés-Engedélyezés-hitelesítő adatok "igaz";

és az eredmény.

Az eredmények ellenőrzése

A szükséges fejlécek hozzáadása után használhatja a böngészőbe épített fejlesztői eszközöket, vagy egy online HTTP fejléc-ellenőrző.

Következtetés

Remélem, hogy a fentiek segítenek a CORS fejléc bevezetésében az Apache HTTP-ben és az Nginx webszerverben a jobb biztonság érdekében. Érdekes lehet az OWASP által ajánlott biztonságos fejlécek alkalmazása is.

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