Come funziona la condivisione delle risorse tra domini diversi ( CORS )

CORS è un meccanismo che consente di richiedere risorse come i documenti JSON presenti in un database IBM® Cloudant® for IBM Cloud® all'indirizzo JavaScript.

In questo caso, il JavaScript è in esecuzione su un sito Web caricato da un altro dominio.

Queste richieste "cross-domain" sono normalmente vietate dai browser web. Le richieste utilizzano lo stesso criterio di sicurezza dell'origine.

CORS definisce le modalità con cui il browser e il server interagiscono per stabilire se autorizzare o meno la richiesta. Per IBM Cloudant,CORS potrebbe rappresentare una buona soluzione nei seguenti casi d'uso

  1. Avete un sito web su https://www.example.com e volete che gli script su questo sito web possano accedere ai dati da https://example.cloudant.com.

    Per rendere possibile tale accesso, Aggiungi https://www.example.com all'elenco delle origini consentite. Di conseguenza, gli script caricati da questo dominio vengono poi autorizzato a effettuare richieste Ajax ai database del tuo IBM Cloudant. Utilizzando l'autorizzazione di tipo " HTTP " con le richieste di tipo " CORS ", Gli utenti della tua applicazione possono accedere solo al proprio database.

  2. Si vuole consentire a terzi l'accesso al proprio database.

    Ad esempio, se avete un database che include informazioni sui prodotti, aggiungete il loro dominio all'elenco delle origini consentite. Dopodiché, è possibile consentire ai partner commerciali di accedere alle informazioni da JavaScript in esecuzione sul loro dominio. L'effetto è che gli script eseguiti sul loro sito web possono accedere al database IBM Cloudant.

Supporto browser

CORS è supportato da tutte le versioni attuali dei browser più diffusi.

Le versioni di Microsoft™ Internet Explorer precedenti alla versione 10 offrono un supporto parziale per CORS. Le versioni di Microsoft™ Internet Explorer precedenti alla versione 8 non supportano CORS.

Sicurezza

La conservazione di dati sensibili in database accessibili tramite CORS rappresenta un potenziale rischio per la sicurezza. Quando si aggiunge un dominio all'elenco delle origini consentite, si accetta di considerare attendibili tutti i JavaScript provenienti da quel dominio. Se l'applicazione web che gira sul dominio esegue codice dannoso o presenta vulnerabilità di sicurezza, i dati sensibili del database potrebbero essere esposti.

Inoltre, consentire il caricamento degli script utilizzando HTTP anziché HTTPS, e quindi accedere ai dati tramite CORS, comporta il rischio che un attacco man-in-the-middle possa modificare gli script.

Per ridurre il rischio di attacchi man-in-the-middle, attenersi alle seguenti linee guida:

  • Non consentire le richieste di tipo “ CORS ” provenienti da tutte le origini. In altre parole, Non impostare "origins": ["*"] a meno che non si sia certi di voler soddisfare le seguenti condizioni:
    • Volete che tutti i dati dei vostri database siano accessibili al pubblico.
    • Le credenziali utente che danno il permesso di modificare i dati non vengono mai utilizzate in un browser.
  • Consenti le richieste di tipo “ CORS ” solo da origini HTTPS, non da HTTP.
  • Assicurarsi che le applicazioni web eseguite su domini di origine consentiti siano affidabili e non presentano vulnerabilità di sicurezza.

Per ulteriori informazioni, consultare la guida " Documentazione API e SDK " relativa agli endpoint di configurazione per CORS.

Dashboard

CORS L'assistenza è disponibile nella dashboard di IBM Cloudant.

È possibile aggiornare le impostazioni di " CORS " utilizzando la scheda " CORS " nella dashboard. Vedere la seguente schermata:

CORS La dashboard ti permette di collegarti a server remoti direttamente dal browser. Utilizzando CORS, è possibile ospitare applicazioni basate su browser su pagine statiche e caricare i dati direttamente da IBM Cloudant.
CORS dashboard

Per visualizzare la configurazione attuale di CORS, apri Account > CORS nella dashboard.

È possibile attivare o disattivare " CORS " tramite Enable CORS. Questa impostazione corrisponde all'opzione enable_cors. quando si modifica la configurazione di CORS dall'interno di un'applicazione.

Per specificare che la funzione " CORS " sia abilitata per tutti i domini, selezionare l'opzione " All domains (*) ".

Per specificare che l'opzione " CORS " sia abilitata solo per i domini di origine esatti, elencare ciascuno dei domini o sottodomini utilizzando l'opzione " Restrict to specific domains ". Per ogni dominio, fornire un indirizzo URL completo, preferibilmente utilizzando il prefisso https per una maggiore sicurezza.