Paano Paganahin ang mga CORS sa Apache at Nginx?

Limitahan o payagan ang pagbabahagi ng mapagkukunan sa pagitan ng mga site gamit ang header ng CORS.


Ang header ng CORS (Pagbabahagi ng Pinagmulang-Pinagmulan) ay suportado sa lahat ng mga modernong browser.

Maaari ba Akong Gumamit ng cors? Ang data sa suporta para sa tampok ng cors sa buong pangunahing browser mula sa caniuse.com.

Bilang default, pinipigilan ng browser ang mga kahilingan ng HTTP na hango sa pamamagitan ng mga script. At, CORS maaaring madaling magamit upang magamit muli ang karaniwang mga mapagkukunan ng aplikasyon sa iba pang mga web application. Kapag naidagdag ito nang tama, itinuturo nito ang browser upang mai-load ang application mula sa ibang pinagmulan.

Mayroong anim na tanyag na uri ng mga header ng CORS na maaaring ipadala ng isang server. I-explore ang mga ito.

Pag-access-Control-Payagan-Pinagmulan

Ang pinakapopular na sinasabi nito sa browser na i-load ang mga mapagkukunan sa pinapayagan na pinagmulan. Sinusuportahan nito ang wildcard (*) at paggawa nito ang anumang domain ay maaaring mai-load ang mga mapagkukunan. Gayunpaman, mayroon itong isang pagpipilian upang payagan ang isang tiyak na pinagmulan.

Apache

Idagdag ang sumusunod sa httpd.conf o anumang iba pang mga in-gamitin na file ng pagsasaayos.

Itakda ang header ng Access-Control-Payagan-Pinagmulan "*"

I-restart ang Apache upang subukan. Dapat mong makita ang mga ito bilang mga header ng tugon.

At, upang payagan mula sa isang tukoy na pinagmulan (ex: https://gf.dev), maaari mong gamitin ang sumusunod.

Itakda ang header ng Access-Control-Payagan-Pinagmulan "https://gf.dev"

Nginx

Narito ang isang halimbawa upang pahintulutan ang pinagmulan https://geekflare.dev. Idagdag ang sumusunod sa block ng server ng nginx.conf o file na pagsasaayos ng ginagamit.

add_header Access-Control-Payagan-Pinagmulan "https://geekflare.dev";

Pag-access-Control-Payagan-Paraan

Maaaring simulan ng browser ang isa o higit pang mga pamamaraan ng HTTP upang ma-access ang mga mapagkukunan. Hal: – GET, PUT, OPTIONS, PUT, DELETE, POST

Apache

Upang payagan lamang ang GET at POST lamang.

Nagdagdag ng header ang Access-Control-Allow-Methods "GET, POST"

Nginx

Sabihin nating kailangan mong magdagdag ng mga pamamaraan ng DELETE at OPTIONS, pagkatapos ay maaari kang magdagdag tulad ng sa ibaba.

add_header Access-Control-Allow-Methods "Mabilis, mga pagpipilian";

Matapos ang restart, dapat mong makita ang mga ito sa mga header ng tugon.

Pag-access-Control-Payagan-Header

Ang mga sumusunod na header ay nasa safelist ay nangangahulugang hindi mo kailangang magdagdag ng isa. Dapat itong gumana nang default.

  • Uri ng Nilalaman
  • Tanggapin
  • Nilalaman-Wika
  • Tanggapin-Wika

Gayunpaman, kung kailangan mong magdagdag ng pasadyang isa, magagawa mo ito. Sinusuportahan nito ang isa o higit pang mga header.

Apache

Sabihin nating nais mong payagan ang X-Custom-Header at X-Powered-By header.

Laging itinakda ng header ang Access-Control-Allow-Header "X-Custom-Header, X-Powered-By"

Pagkatapos ng isang pag-restart, dapat mong makita ang resulta sa mga header ng tugon.

Nginx

Isang halimbawa ng pagdaragdag ng X-Customer-Software at X-My-Custom header.

add_header Access-Control-Payagan-Header "X-Custom-Software, X-My-Custom";

Pag-access-Control-Expose-Header

Ang mga sumusunod na header ay ligtas na listahan. Ibig sabihin, hindi mo kailangang idagdag kung nais mong ilantad ang mga ito.

  • Nag-expire
  • Pragma
  • Pag-control ng Cache
  • Huling binago
  • Nilalaman-Wika
  • Uri ng Nilalaman

Ngunit, kung kailangan mo maliban sa ligtas na listahan, maaari mong payagan ang mga ito tulad ng sumusunod.

Apache

Gumamit ng isang wildcard upang ilantad ang lahat ng mga header.

Laging itinakda ng header ang Access-Control-Expose-Header "*"

Tandaan: hindi pa rin inilalantad ng isang wildcard ang header ng Awtorisasyon, at kung kailangan mo ng isa, kailangan mong banggitin nang malinaw.

Laging itinakda ng header ang Access-Control-Expose-Header "Awtorisasyon, *"

Ang resulta ay dapat magmukhang ganito.

Nginx

Kung nais mong ilantad ang header ng Pinagmulan.

add_header Access-Control-Expose-Header "Pinagmulan";

Pag-access-Control-Max-Edad

Alam mo ba ang data mula sa Access-Control-Allow-Header at Access-Control-Allow-Methods headache ay maaaring mai-cache? Maaari itong mai-cache ng hanggang sa 24 na oras sa Firefox, 2 oras sa Chrome (76+).

Upang hindi paganahin ang caching, maaari mong mapanatili ang halaga bilang -1

Apache

Upang cache ng 15 minuto.

Laging itinakda ng header ang Access-Control-Max-Age "900"

Tulad ng nakikita mo, ang halaga ay nasa ilang segundo.

Nginx

Upang cache para sa isang oras.

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

Kapag idinagdag, i-restart ang Nginx upang makita ang mga resulta.

I-access-Control-Payagan-Credentials

May isang pagpipilian lamang upang maitakda dito – totoo. Ito ay upang payagan kung nais mong ilantad ang mga kredensyal tulad ng cookies, sertipiko ng TLS, pahintulot.

Apache

Laging itinakda ng header ang Access-Control-Allow-Credentials "totoo"

Nginx

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

at ang resulta.

Pag-verify ng mga resulta

Kapag idinagdag ang kinakailangang mga header, maaari mong gamitin ang browser sa mga built-in na tool ng developer o isang online na HTTP header checker.

Konklusyon

Inaasahan kong makakatulong sa iyo ang itaas upang maipatupad ang header ng CORS sa Apache HTTP at ng web server ng Nginx para sa mas mahusay na seguridad. Maaari ka ring maging interesado sa paglalapat ng inirekumendang mga header ng 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