Pubblicato il Lascia un commento

CORS – Cross-Origin Resource Sharing

CORS (Cross-Origin Resource Sharing), problematica dell’accedere a risorse di un altro sito tramite javascript.

Quando si tenta un accesso di risorse da sitoA a sitoB, a seconda del tipo di richiesta, i browser mandano una “pre-richiesta” di controllo senza dati (data-less “preflight” OPTIONS request) per verificare header e/o verb ovvero

non-simple request:

  1. Access-Control-Allow-Headers (non-simple headers)
  2. Access-Control-Allow-Methods (non-simple verb)
    es.: cioè che non è GET o POST con determinati mime-type

 

XMLHttpRequest 2
https://xhr.spec.whatwg.org/

 

Alternative a CORS

  1. JSONP –
  2. Proxy – lato server (“proxare” lato server le chiamate JS e ribaltarle all’endpoint)
  3. HTML5 – disabilita restrizione same-origin a patto si specifichi domini autorizzati
    Access-Control-Allow-Origin

CORS vs JSONP

  • metodi supportati – JSONP solo GET
  • programmazione – CORS migliore utilizzo di XHR e quindi milgiore gestione errori
  • compatiblità browser – jsonp è più compatibile
  • sicurezza – CORSS più sicuro mentre JSONP può acusare XSS

In conclusione è preferibile CORS a JSONP.

Fonti

https://www.w3.org/TR/cors/

https://www.html5rocks.com/en/tutorials/cors/

(WIKI) https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

(IT)
http://www.html5italia.com/script/49/Effettuare-Richieste-Cross-Origin-Resource-Sharing-CORS-JSONP-HTML5.aspx
(dotNet) http://imperugo.tostring.it/archive/2014/02/18/utilizzare-cors-con-web-api-20/

(stackoverflow)
http://stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work
http://stackoverflow.com/questions/13400594/understanding-xmlhttprequest-over-cors-responsetext/13400954#13400954

 

VEDI ANCHE

Jsonp

 

 

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.