it.wikipedia.org

Cross-origin resource sharing - Wikipedia

Da Wikipedia, l'enciclopedia libera.

CORS (acronimo di Cross-Origin Resource Sharing) è un sistema di sicurezza che consente di richiedere delle risorse da una pagina web ad un altro dominio esterno rispetto al richiedente.[1]

Una pagina web può incorporare liberamente immagini, fogli di stile, script, iframe e video da altri domini,[2] mentre alcune richieste "interdominio", in particolare le richieste AJAX, sono bloccate per impostazione predefinita dalla politica di sicurezza per cui la risorsa richiesta debba avere la stessa origine (e quindi dallo stesso dominio) del sito richiedente. CORS definisce un modo in cui un browser e un server possano interagire per determinare se è sicuro consentire la richiesta multiorigine.[3] Questo sistema consente maggiore libertà e funzionalità rispetto ad una forzature di richieste della stessa origine, ma al contempo stesso consente le richieste tra origini diverse.

La specifica per CORS è inclusa come parte del Fetch Living Standard del WHATWG.[4] Questa specifica descrive come CORS è attualmente implementato nei browser.[5] Una precedente specifica era stata pubblicata come raccomandazione del W3C.

Percorso di una richiesta XMLHttpRequest tramite CORS.

Per i metodi di richiesta AJAX e HTTP che possono modificare i dati (di solito metodi HTTP diversi da GET o per l'utilizzo POST con determinati tipi MIME), la specifica richiede che i browser eseguano il cosiddetto "preflight" della richiesta, sollecitando i metodi supportati dal server con una richiesta HTTP OPTIONS e quindi, su "approvazione" dal server, inviando la richiesta effettiva con il metodo di richiesta HTTP effettivo.

Le intestazioni HTTP relative a CORS sono:

  • Origin
  • Access-Control-Request-Method
  • Access-Control-Request-Headers
  • Access-Control-Allow-Origin
  • Access-Control-Allow-Credentials
  • Access-Control-Expose-Headers
  • Access-Control-Max-Age
  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
  1. ^ (EN) cross-site xmlhttprequest with CORS, su Mozilla Hacks – the Web developer blog. URL consultato il 27 giugno 2022.
  2. ^ (EN) Same-origin policy - Web security | MDN, su developer.mozilla.org. URL consultato il 27 giugno 2022.
  3. ^ (EN) Nicholas C. Zakas, Cross-domain Ajax with Cross-Origin Resource Sharing, su humanwhocodes.com. URL consultato il 27 giugno 2022.
  4. ^ (EN) Fetch Standard, su fetch.spec.whatwg.org. URL consultato il 27 giugno 2022.
  5. ^ Web Application Security WG -- 16 Aug 2017, su www.w3.org, en. URL consultato il 27 giugno 2022.

V · D · M

Interfacce web
Lato server
ProtocolliHTTP · CGI · SCGI · FCGI · AJP · WSRP · WebSocket
API ServerC NSAPI · C ASAPI · C ISAPI · COM ASP · Java servlet · container · CLI OWIN · ASP.NET Handler · Python WSGI · Ruby Rack · JavaScript JSGI · Perl PSGI · Lua WSAPI · Portlet
ArgomentiWeb service · Open API · Webhook · Application server
Lato client
API browserC NPAPI (LiveConnect · XPConnect · C NPRuntime) · C PPAPI (NaCl) · ActiveX · BHO · XBAP
API web
W3CAudio · Canvas · CORS · DOM · DOM events · EME · File · Font Geolocation · IndexedDB · MSE · SSE · SVG · Video · WebRTC · WebSocket · Web messaging · Web storage · Web worker · XMLHttpRequest · WebAssembly
KhronosWebCL · WebGL
AltriGoogle Gears · Web SQL Database (formerly W3C) · WebUSB
ArgomentiAJAX vs. DHTML · Mashup · Web IDL · Scripting
ArgomentiWeb statico · Web dinamico · Open Web Platform · Rich Internet application · Applicazione web