Kako omogućiti CORS u Apache i Nginx?

Ograničite ili dopustite dijeljenje resursa između web mjesta pomoću CORS zaglavlja.


Zaglavlje CORS (Cross-Origin Resource Sharing) podržano je na svim modernim preglednicima.

Mogu li koristiti kori? Podaci o podršci za Cors nalaze se u glavnim preglednicima caniuse.com.

Preglednik prema zadanim postavkama ograničava unakrsne HTTP zahtjeve putem skripti. I, CORS može biti korisno za ponovno korištenje uobičajenih resursa aplikacija na drugim web aplikacijama. Nakon što je ispravno dodate, upućuje preglednik da učita aplikaciju drugog podrijetla.

Postoji šest popularnih vrsta zaglavlja CORS koje server može poslati. Istražimo ih.

Pristup Control-Allow-Podrijetlo

Najpopularnija je ona koja upućuje pregledniku da učita resurse na dopuštenom podrijetlu. Podržava zamjenske znakove (*) i na taj način bilo koja domena može učitati resurse. Međutim, ona ima mogućnost dopustiti određeno podrijetlo.

apaš

U httpd.conf ili bilo koju drugu konfiguracijsku datoteku u upotrebi dodajte sljedeće.

Zaglavlje postavljeno Za kontrolu pristupa-Dopusti-porijeklo "*"

Ponovno pokrenite Apache da biste testirali. Trebali biste ih vidjeti u naslovima odgovora.

A, da biste to omogućili iz određenog podrijetla (npr .: https://gf.dev), možete upotrijebiti sljedeće.

Zaglavlje postavljeno Za kontrolu pristupa-Dopusti-porijeklo "https://gf.dev"

Nginx

Evo primjera kako biste omogućili podrijetlo https://geekflare.dev. Dodajte sljedeće u blok poslužitelja nginx.conf ili konfiguracijsku datoteku u upotrebi.

add_header Access-Control-Allow-Origin "https://geekflare.dev";

Kontrolu pristupa omogućivanje-metode

Preglednik može pokrenuti jednu ili više HTTP metoda za pristup resursima. Primjer: – GET, PUT, OPTIONS, PUT, DELETE, POST

apaš

Omogući samo GET i POST.

Zaglavlje dodaj Metode kontrole-dopuštanja pristupa "DOSTAVI, POST"

Nginx

Recimo da trebate dodati DELETE i OPTIONS metode, a zatim možete dodati kao dolje.

add_header metode pristupa-kontrole-dopuštanja "DELETE, OPCIJE";

Nakon ponovnog pokretanja trebali biste ih vidjeti u naslovima odgovora.

Pristup Control-Allow-zaglavlja

Sljedeća su zaglavlja u safelistu što znači da ih ne morate dodati. Trebao bi raditi prema zadanim postavkama.

  • Content-Type
  • Prihvatiti
  • Sadržaj-jezik
  • Accept-Language

Međutim, ako trebate dodati prilagođeni, to možete učiniti. Podržava jedno ili više zaglavlja.

apaš

Recimo da želite da omogućite X-Custom-Header i X-Powered-By zaglavlja.

Zaglavlje uvijek postavljaju Access-Control-Allow-Headers "X-Custom-Header, X-Powered-By"

Nakon ponovnog pokretanja, rezultat bi trebali vidjeti u zaglavima odgovora.

Nginx

Primjer dodavanja X-kupca-softvera i zaglavlja X-My-Custom.

add_header-kontrola pristupa-dopušta-zaglavlja "X-Custom softver, X-My-Custom";

Pristup Kontrola-Expose-zaglavlja

Sljedeća su zaglavlja već sigurna. Znači, ne morate ih dodavati ako ih želite izložiti.

  • istječe
  • Pragma
  • Cache-Control
  • Zadnja promjena
  • Sadržaj-jezik
  • Content-Type

Ali, ako vam trebaju drugi osim sigurnosnog popisa, možete ih dopustiti na sljedeći način.

apaš

Upotrijebite zamjenski znak da biste otkrili sva zaglavlja.

Zaglavlja su uvijek postavljena zaglavlja Access-Control-Expose-Headers "*"

Napomena: zamjenski znak još uvijek nema zaglavlje autorizacije, a ako vam je potreban, morate ga izrijekom spomenuti.

Zaglavlja su uvijek postavljena zaglavlja Access-Control-Expose-Headers "Autorizacija, *"

Rezultat bi trebao izgledati ovako.

Nginx

Ako želite otkriti zaglavlje Origin.

add_header-kontrola pristupa-izlaganje-zaglavlja "Podrijetlo";

Pristup Kontrola-Max-Age

Znate li da li se podaci iz zaglavlja Access-Control-Allow-Headers i Access-Control-Allow-Method mogu predmemorirati? Može se spremiti u spremište do 24 sata u Firefoxu, 2 sata u Chromeu (76+).

Da biste onemogućili predmemoriranje, možete zadržati vrijednost -1

apaš

Za caširanje 15 minuta.

Zaglavlje je uvijek postavljeno Access-Control-Max-Age "900"

Kao što vidite, vrijednost je u sekundi.

Nginx

Za spremanje u sat vremena.

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

Nakon dodavanja, ponovo pokrenite Nginx da biste vidjeli rezultate.

Kontrolu pristupa omogućivanje-Mandatno

Ovdje se može postaviti samo jedna opcija – istina. To će omogućiti ako želite izložiti vjerodajnice poput kolačića, TLS certifikata, autorizacije.

apaš

Zaglavlje je uvijek postavljeno Access-Control-Allow-Credentials "pravi"

Nginx

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

i rezultat.

Provjera rezultata

Nakon dodavanja potrebnih zaglavlja možete upotrebljavati alate za razvojne programe ugrađene u preglednik ili mrežna provjera HTTP zaglavlja.

Zaključak

Nadam se da vam gore navedeno pomaže da implementirate zaglavlje CORS u Apache HTTP i Nginx web poslužitelj za bolju sigurnost. Možda će vas zanimati i primjena sigurnih zaglavlja 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