2011-11-14 10 views
5

Desidero consentire alle applicazioni client di eseguire richieste JSON tra domini su un server di dati centrale. I client e il server si troveranno su domini diversi.È sicuro utilizzare l'impostazione "Access-Control-Allow-Origin: *" sul server e utilizzare i cookie di sessione allo stesso tempo?

Per aggirare "l'origine null non è consentita da Access-Control-Allow-Origin". errore, ho impostato il server:

Access-Control-Allow-Origin: * 

intestazione.

Vedo qui (http://www.w3.org/wiki/CORS_Enabled) che il dominio incrociato deve essere utilizzato solo per "dati pubblici che non richiedono l'autenticazione basata su cookie o sessione".

Non è sicuro utilizzare l'autenticazione basata su sessione/cookie quando si utilizza Access-Control-Allow-Origin: * header? Se no perché?

Grazie.

risposta

3

Avere un set di regole CORS di Access-Control-Allow-Origin: * non è un bypass di politica Same-Same completo ed è probabilmente sicuro.

Avere questa intestazione impostata su ogni pagina consente di unauthenticated resource-requests. I cookie di autenticazione non sono inclusi implicitamente con queste richieste, quindi non è possibile utilizzare un XHR cross-site per dire; leggi la tua email o leggi i token CSRF su un dominio remoto, perché queste richieste richiederebbero un cookie o un token al portatore.

+0

Come si suppone che funzioni quando i browser non consentono l'accesso alle risorse che necessitano di credenziali? La stringa "*" non può essere utilizzata per una risorsa che supporta le credenziali. https://www.w3.org/TR/cors/#resource-requests. Mi rendo conto che questa è una vecchia risposta, non era questo il caso nell'11? – bayotop

+1

@bayotop sei corretto, aggiornato. A mia difesa questo è stato pubblicato nel 2011. – rook

Problemi correlati