Mój znajomy, Carsten Lau, przyszedł z ciekawym pomysłem, jak czytać pliki cookie z obsługą wielu domen.Pliki cookie z różnych dziedzin - może nowy pomysł
Sytuacja: Chcesz odczytać plik cookie z domeny "A" ustawionej w domenie "B". Idea: Z klienta w domenie "A", wykonujesz żądanie pobrania do zasobu dynamicznego w domenie "B" - f.e. obraz lub javascript, który na serwerze "B" jest w rzeczywistości językiem programowania zdolnym do czytania ciasteczek takich jak PHP, Java itd. Z tym żądaniem wysyłasz unikalny identyfikator, taki jak identyfikator sesji. Więc kod po stronie klienta, który patrzy na miejscu w domenie „A” może wyglądać następująco:
<img src="www.domainB.com/?getCookie.php?sessionID=1234">
Teraz przychodzi zabawną część, serwer B czytamy na stronie serwera plik cookie ustawiane przez domenę „B” zapisuje wynik z podanym identyfikatorem sesji w DB dostępnym dla domeny "A" lub zwraca odpowiedź, która zawiera informację cookie do klienta w domenie "A", która następnie wysyła ją przez AJAX do serwera "A".
Jestem prawie pewny, że istnieje usterka, której jeszcze nie znaleźliśmy. Osobiście uważam, że serwer "B" nie będzie w stanie odczytać informacji o plikach cookie, ponieważ adres URL przeglądarki klienta wskazuje na domenę "A", ale oczywiście wyjaśnienie "getCookie" powyżej wskazuje na "B".
Poinformuj nas, co o nim sądzisz, dlaczego działa i dlaczego nie działa. Mały dowód koncepcji był, ku mojemu wielkiemu zaskoczeniu, udany.
To powinno zadziałać. W rzeczywistości w ten sposób strony internetowe obsługują logowania użytkowników z różnych domen, ponieważ domeny udostępniają bazy danych zawierające dane sesji. – Joseph
Dzięki. Wszędzie w Internecie i tutaj na SO można przeczytać "ciasteczka cross-domain = impossible", podczas gdy w rzeczywistości prosty hack umożliwia, jeśli jesteś właścicielem obu domen i może dodać trochę skryptu w domenie "B"? Dziwne ... –
Nie ma w tym nic dziwnego. Nie czytasz ani nie konfigurujesz ciasteczka dla innej domeny - to jest niemożliwe z twojej domeny. Jeśli masz "pomoc" z innej domeny, to jest mało "między-domeną" o tym - otrzymujesz informację _by wybór_ z innej domeny; mając na uwadze, że stosuje się politykę międzydomenową, aby zapobiegać temu, gdy druga domena tego nie chce. – CBroe