2013-04-24 14 views
18

Il mio amico Carsten Lau ha avuto un'idea interessante su come leggere i cookie di più domini.Cookie cross-domain - una nuova idea

Situazione: Si desidera leggere un cookie dal dominio "A" impostato sul dominio "B". Idea: dal client sul dominio "A", si esegue una richiesta di acquisizione a una risorsa dinamica sul dominio "B" - ad es. un'immagine o javascript, che sul server "B" è in realtà un linguaggio di programmazione in grado di leggere cookie come PHP, Java ecc. Con tale richiesta, si invia un identificativo univoco come un id di sessione. Quindi, il codice del client, che guarda a un sito sul dominio "A" potrebbe apparire come segue:

<img src="www.domainB.com/?getCookie.php?sessionID=1234"> 

Ora arriva la parte divertente, server B si legge sul lato server il cookie impostato dal dominio "B" e scrive il risultato con l'ID di sessione fornito in un DB accessibile dal dominio "A" o restituisce una risposta che contiene le informazioni sui cookie per il client sul dominio "A" che quindi lo invia tramite AJAX al server "A".

Sono sicuro che c'è un difetto che non abbiamo ancora trovato. Personalmente ritengo che il server "B" non sarà in grado di leggere le informazioni sui cookie perché l'URL del browser client punta al dominio "A", ma ovviamente il "getCookie" - domanda spiegata sopra punta a "B".

Si prega di dirci cosa ne pensate, perché funziona o perché non può funzionare. Con mia grande sorpresa, una piccola dimostrazione di concetto è stata un successo.

+2

Questo dovrebbe funzionare. In effetti, questo è il modo in cui i siti web gestiscono gli accessi per gli utenti di domini diversi, poiché i domini condividono database che contengono dati di sessione. – Joseph

+1

Grazie. Ovunque su Internet e qui su SO, puoi leggere "cross domain cookies = impossible" mentre in realtà questo semplice hack lo rende possibile, se possiedi entrambi i domini e puoi aggiungere un piccolo script sul dominio "B"? Strano ... –

+7

Non c'è niente di strano in questo. Non stai leggendo o impostando un cookie per un dominio diverso qui - che è impossibile da solo il tuo dominio. Se hai "aiuto" da un altro dominio, allora c'è poco "dominio incrociato" su di esso - stai ricevendo le informazioni da qualsiasi altro dominio; mentre è in atto una politica di dominio incrociato per impedire che ciò accada laddove l'altro dominio non lo desidera. – CBroe

risposta

15

Questo è normale, perché si ha il controllo dei 2 domini. Questo è il modo in cui la maggior parte dei siti Web raggiunge il single-sign-on interdominio. Ma se non hai il controllo del secondo dominio non puoi leggere i cookie da esso.

+3

sicuro, hai ragione, tuttavia, la maggior parte delle volte quando si cercano i cookie di domini incrociati ci sono risposte semplici (e false) "non possibili". Se possiedi entrambi i domini, non ci sono problemi. –