Vai al contenuto

Cross-Origin Resource Sharing

CORS regola l’accesso del browser alle risposte di un’altra origine. Non sostituisce l’autenticazione né il controllo delle autorizzazioni nell’API.

Noto anche comeCORS
API e contratti dati

Consentire a un’altra origine di leggere le risposte

Cross-Origin Resource Sharing, o CORS, è un meccanismo basato su intestazioni HTTP. Il server indica da quali altre origini il codice nel browser può accedere alle sue risposte. Un’origine comprende protocollo, host e porta. La regola è applicata dal browser; CORS non è un accesso autenticato all’API.

Distinguere portale e API

Un portale fittizio su https://portal.example vuole leggere dati di progetto da https://api.example/projects. L’API può autorizzare l’origine del portale con Access-Control-Allow-Origin. In base a metodo e intestazioni, il browser chiede prima con OPTIONS se la chiamata effettiva è consentita. Il controllo preliminare si chiama preflight; non avviene per ogni chiamata.

Per altre chiamate la richiesta può già raggiungere il server, anche se il browser poi non rende la risposta leggibile allo script. Un errore CORS non dimostra quindi che sul server non sia accaduto nulla.

Se vanno inviati cookie di sessione, devono essere coerenti anche le impostazioni delle credenziali. Queste risposte richiedono un’origine esplicita invece del carattere jolly *; conta anche Access-Control-Allow-Credentials. Le regole del browser sui cookie continuano a valere. Indipendentemente, l’API verifica identità e diritti sui dati richiesti.

Fonti