Több eredetû forrásmegosztás

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. november 12-én felülvizsgált verziótól ; az ellenőrzéshez 21 szerkesztés szükséges .

A kereszteredetű erőforrások megosztása ( CORS ;  angolul  -  "sharing resources between different sources")modern böngészők technológiája, amely lehetővé teszi, hogy a weboldalak hozzáférést biztosítsanak egy másik domain erőforrásaihoz .

A CORS technológia lényege

Három tartomány teszi lehetővé az erőforrások letöltését az U szerverről. Ahhoz, hogy ez lehetséges legyen, a tartalmat adó U webszervernek csak meg kell adnia a megbízható tartományok listáját az Access-Control-Allow-Origin mezőben. válaszfejléc : A, B, C. Ekkor ezeknek a domaineknek az oldalaira nem érvényesek az azonos származás elvének korlátozásai a kért oldalakon:

Access-Control-Allow-Origin: A, B, C

Ezt követően az A, B, C domain oldalai letölthetnek tartalmat az U szerverről.

PHP esetén ez a header() függvény meghívásával történik:

<?php header ( "Access-Control-Allow-Origin: http://example.com" ); ?>

Használati példa

A több eredetre vonatkozó kérés inicializálásához az ügyfélböngésző hozzáadja az Origin ( a kérelem származási helyének tartománya ) jelzését a HTTP -kéréshez. Például a http://www.a.com/page.html oldal megpróbál adatokat lekérni a http://www.b.com/cors.txt oldalról. Ha az ügyfélböngésző támogatja a CORS technológiát, a kérés így fog kinézni:

GET /cors.txt HTTP/1.1 Házigazda: www.b.com Származási hely: www.a.com

Ha a www.b.com szerver lehetővé teszi adatok fogadását a www.a.com webhelyről, akkor a szerver válasza a következő sort tartalmazza:

Access-Control-Allow-Origin: http://www.a.com

Ha ez a sor hiányzik a szerver válaszából , akkor a CORS technológiát támogató böngésző hibakódot ad vissza adatok helyett.

Abban az esetben, ha a szerver hozzáférést szeretne engedélyezni bármely tartomány oldalaihoz , a válaszban megadhatja:

Access-Control-Allow-Origin: *

Ha a szerver egynél több tartományhoz szeretne hozzáférést engedélyezni , akkor a kiszolgáló válaszának minden tartományhoz tartalmaznia kell egy Access-Control-Allow-Origin sort .

Access-Control-Allow-Origin: http://www.a.com Access-Control-Allow-Origin: http://www.b.com Access-Control-Allow-Origin: http://www.c.com

A gyakorlatban gyakrabban használnak több tartományból származó rekordot , szóközzel elválasztva [1] :

Access-Control-Allow-Origin: http://www.a.com http://www.b.com http://www.c.com

A CORS és a JSONP kapcsolata

A CORS technológia a JSONP modernebb és megbízhatóbb alternatívájaként használható, mivel lehetővé teszi az XMLHttpRequest teljes előnyeinek kihasználását , és a JSONP-vel ellentétben nincs sebezhető az SQL injekcióval szemben. . Másrészt a CORS technológia speciális támogatást igényel a böngészőkódban , míg a JSONP nem függ ettől.

Böngésző támogatás

  • Gecko 1.9.1 ( Firefox 3.5 [2] , SeaMonkey 2.0) és újabb.
  • WebKit ( Safari 4 és újabb [3] , Google Chrome 3 és újabb [4] , esetleg korábbi).
  • Az MSHTML/Trident 6.0 ( Internet Explorer 10 ) beépített támogatással rendelkezik [5] , az MSHTML/Trident 4.0 és 5.0 ( Internet Explorer 8 és 9) pedig részleges támogatást biztosít az XDomainRequest objektumon keresztül. Az Internet Explorer 10 és 11 böngészők a rendelkezésre álló hibajelentések szerint [6] nem támogatják a CORS -t a nem latin karaktereket tartalmazó nemzetközi tartományneveknél ( IDN ).
  • A Presto böngészők (Opera) A CORS az Opera 12.00-ban [7] és az Opera Mobile 12-ben van megvalósítva, de az Opera Miniben nem.

Jegyzetek

  1. Eredetek közötti erőforrás-megosztás . Letöltve: 2013. november 22. Az eredetiből archiválva : 2017. március 6..
  2. HTTP hozzáférés-vezérlés (CORS) - HTTP | MDN . Hozzáférés dátuma: 2014. február 24. Az eredetiből archiválva : 2014. február 21.
  3. webhelyek közötti xmlhttprequest a CORS segítségével ✩ Mozilla Hacks – a webfejlesztői blog . Letöltve: 2014. február 24. Az eredetiből archiválva : 2019. szeptember 11.
  4. Archivált másolat (a hivatkozás nem elérhető) . Hozzáférés dátuma: 2014. február 24. Az eredetiből archiválva : 2012. július 19. 
  5. Tony Ross, programmenedzser, Internet Explorer. CORS az XHR-hez IE10-ben . MSDN (2012. február 9.). Letöltve: 2015. december 2. Az eredetiből archiválva : 2015. december 5..
  6. A böngésző nem ismeri fel az Access-Control-Allow-Origin parancsot, ha az IDN tartomány - Microsoft Edge Development (lefelé irányuló kapcsolat) . developer.microsoft.com. Letöltve: 2016. szeptember 18. Az eredetiből archiválva : 2016. szeptember 19. 
  7. Opera: Opera 12.00 UNIX változásnaplóhoz (lefelé irányuló kapcsolat) . Letöltve: 2014. február 24. Az eredetiből archiválva : 2012. június 18. 

Irodalom

  • Monsur Hossain. CORS in Action: Több eredetű API-k létrehozása és felhasználása. - Manning Publications Company, 2014. - 240 p. - ISBN 978-1-61729-182-1 .
  • Mike Shema. Webes alkalmazások feltörése: A webalkalmazások biztonsági problémáinak észlelése és megelőzése. - Newnes, 2012. - P. 3-6. — ISBN 978-1-59749-951-4 .