Kako omogočiti CORS v Apache in Nginx?

Omejite ali dovolite skupno rabo virov med spletnimi mesti, ki uporabljajo glavo CORS.


Glava CORS (Cross-Origin Resource Sharing) je podprta v vseh sodobnih brskalnikih.

Ali lahko uporabljam korte? Podatki o podpori za cors so v večjih brskalnikih caniuse.com.

Brskalnik privzeto prek skriptov omeji zahteve izvornih HTTP. In, CORS lahko uporabimo skupne vire aplikacij v drugih spletnih aplikacijah. Ko je pravilno dodan, brskalniku naroči, da naloži aplikacijo iz drugega izvora.

Obstaja šest priljubljenih vrst glave CORS, ki jih strežnik lahko pošlje. Preučimo jih.

Access-Control-Allow-Origin

Najbolj priljubljena, ki pove brskalniku, naj naloži vire na dovoljenem izvoru. Podpira nadomestne znake (*) in tako lahko vsaka domena naloži vire. Vendar ima možnost, da dovoli točno določeno poreklo.

Apač

V httpd.conf ali katero koli drugo konfiguracijsko datoteko med uporabo dodajte naslednje.

Nastavi glavo, nadzor-dovoljenje-dovoli-izvor "*"

Znova zaženite Apache in preizkusite. Morali bi jih videti v glavah odzivov.

Če želite dovoliti določeno poreklo (npr. Https://gf.dev), lahko uporabite naslednje.

Nastavi glavo, nadzor-dovoljenje-dovoli-izvor "https://gf.dev"

Nginx

Tu je primer, kako dovoliti izvor https://geekflare.dev. V strežniški blok nginx.conf ali konfiguracijsko datoteko v uporabi dodajte naslednje.

add_header Nadzor dostopa-dovoljenje-izvor "https://geekflare.dev";

Metode nadzora nadzorovanja dostopa

Brskalnik lahko sproži enega ali več načinov HTTP za dostop do virov. Na primer: – GET, PUT, MOŽNOSTI, PUT, DELETE, POST

Apač

Dovoli samo GET in POST.

Glavi dodajte metode za dostop-nadzor-dovoljenje "DOBI, POŠT"

Nginx

Recimo, da morate dodati metode DELETE in OPTIONS, nato pa lahko dodate kot spodaj.

add_header Metode nadzora-dostopa-dovoljenja "DELETE, MOŽNOSTI";

Po ponovnem zagonu bi jih morali videti v glavah odzivov.

Nadzor dostopa-dovoli-glave

Naslednji naslovi sta v seznamu za seznam, kar pomeni, da ju ni treba dodati. To bi moralo delovati privzeto.

  • Vrsta vsebine
  • Sprejmi
  • Jezik vsebine
  • Sprejmi jezik

Če pa morate dodati po meri, lahko to storite. Podpira eno ali več glav.

Apač

Recimo, da želite omogočiti glavo X-po meri in X-Powered-By.

Header je vedno nastavljen za dostop-nadzor-dovoli-glavo "X-Custom-Header, X-Powered-By"

Po ponovnem zagonu bi moral rezultat videti v glavah odzivov.

Nginx

Primer dodajanja X-programske opreme za stranke in glave X-My-Custom.

add_header-nadzor dostopa-dovoli-glave "Programska oprema X-Custom, X-My-Custom";

Glave dostopa, nadzor-izpostavitev

Naslednji naslovi so že varen seznam. Pomeni, da vam jih ni treba dodati, če jih želite izpostaviti.

  • Poteče
  • Pragma
  • Cache-Control
  • Zadnja sprememba
  • Jezik vsebine
  • Vrsta vsebine

Ampak, če ne potrebujete drugega kot varen seznam, jih lahko dovolite na naslednji način.

Apač

Uporabite nadomestni znak, da izpostavite vse glave.

Header vedno nastavi nastavitve Access-Control-Expose-Headers "*"

Opomba: nadomestni znak še vedno ne prikazuje glave avtorizacije in če ga potrebujete, ga morate izrecno omeniti.

Header vedno nastavi nastavitve Access-Control-Expose-Headers "Pooblastilo, *"

Rezultat naj bo videti tako.

Nginx

Če želite izpostaviti glavo izvora.

add_header-nadzor-izpostavitev-glave-glave "Poreklo";

Access-Control-Max-Age

Ali poznate predpomnilniške podatke iz glave Access-Control-Allow-Headers in Access-Control-Allow-Method? V Firefoxu lahko predpomnite do 24 ur, v Chromu (76+).

Če želite onemogočiti predpomnjenje, lahko vrednost ohranite kot -1

Apač

Za predpomnjenje 15 minut.

Glava je vedno nastavljena Access-Control-Max-Age "900"

Kot vidite, je vrednost v nekaj sekundah.

Nginx

Za shranjevanje eno uro.

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

Ko je dodan, znova zaženite Nginx in si oglejte rezultate.

Access-Control-Allow-Credentials

Tukaj lahko nastavite samo eno možnost – true. To bo omogočilo, če želite izpostaviti poverilnice, kot so piškotki, certifikati TLS, avtorizacija.

Apač

Header je vedno nastavil Access-Control-Allow-Credentials "prav"

Nginx

add_header Access-Control-Allow-Credentials "prav";

in rezultat.

Preverjanje rezultatov

Ko so dodane potrebne glave, lahko uporabite vgrajena orodja za razvijalce v brskalniku ali spletno preverjanje glave HTTP.

Zaključek

Upam, da vam zgornje pomaga uvesti glavo CORS v Apache HTTP in na spletni strežnik Nginx za boljšo varnost. Mogoče bi vas zanimala tudi uporaba zaščitenih glav OWASP.

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