Mam dwie aplikacje WebApp1 i WebApp2 w dwóch różnych domenach.
- Ustawiam ciasteczko w WebApp1 w HttpResponse.
- Jak odczytać ten sam plik cookie z HttpRequest w WebApp2?
Wiem, że to brzmi dziwnie, ponieważ pliki cookie są specyficzne dla danej domeny i nie możemy uzyskać do nich dostępu z różnych domen; Słyszałem jednak o plikach cookie CROSS-DOMAIN, które można udostępniać w wielu aplikacjach internetowych. Jak wdrożyć ten wymóg przy użyciu plików cookie CROSS-DOMAIN?
Uwaga: próbuję tego z aplikacjami internetowymi J2EE
źródło
Jak mówią inni, nie możesz udostępniać plików cookie, ale możesz zrobić coś takiego:
Oczywiście nie jest to całkowicie bezpieczne i musisz w tym celu stworzyć wewnętrzny protokół między aplikacjami.
Wreszcie, byłoby bardzo denerwujące dla użytkownika, gdybyś robił coś takiego przy każdym żądaniu, ale nie, jeśli jest to tylko pierwszy.
Ale myślę, że nie ma innego sposobu ...
źródło
cookiebaker
byłby lepszy ;-)O ile mi wiadomo, pliki cookie są ograniczone przez zasady „tego samego pochodzenia”. Jednak dzięki CORS możesz otrzymywać i wykorzystywać pliki cookie „Server B” w celu ustanowienia trwałej sesji z „Server A” na „Server B”.
Wymaga to jednak niektórych nagłówków na „serwerze B”:
I trzeba będzie wysłać flaga „ withCredentials ” na wszystkich wniosków „Serwer A” (Ex:
xhr.withCredentials = true;
)Możesz przeczytać o tym tutaj:
http://www.html5rocks.com/en/tutorials/cors/
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
źródło
Nie ma czegoś takiego jak pliki cookie między domenami. Możesz udostępnić plik cookie pomiędzy
foo.example.com
i,bar.example.com
ale nigdy pomiędzy,example.com
iexample2.com
to ze względów bezpieczeństwa.źródło
foo.example.com
ibar.example.com
?Najmądrzejszym rozwiązaniem jest podążanie w tym kierunku drogą Facebooka. Skąd Facebook wie, kim jesteś, kiedy odwiedzasz dowolną domenę? To jest naprawdę bardzo proste :
Przycisk Lubię to pozwala Facebookowi śledzić wszystkich odwiedzających witrynę zewnętrzną, bez względu na to, czy klikną ją, czy nie. Facebook może to zrobić, ponieważ do wyświetlenia przycisku używają elementu iframe . Ramka iframe jest czymś w rodzaju osadzonego okna przeglądarki na stronie. Różnica między użyciem elementu iframe a prostym obrazem przycisku polega na tym, że element iframe zawiera pełną stronę internetową - z Facebooka . Na tej stronie niewiele się dzieje, z wyjątkiem przycisku i informacji o tym, ile osób polubiło bieżącą stronę.
Więc kiedy zobaczysz przycisk „Lubię to” na cnn.com, faktycznie odwiedzasz jednocześnie stronę na Facebooku. Dzięki temu Facebook może odczytać plik cookie na twoim komputerze, który utworzył podczas ostatniego logowania na Facebooku.
Podstawową zasadą bezpieczeństwa w każdej przeglądarce jest to, że tylko strona internetowa, która utworzyła plik cookie, może go później przeczytać. I to jest zaleta iframe: pozwala Facebookowi czytać twoje ciasteczka na Facebooku, nawet gdy odwiedzasz inną stronę internetową. W ten sposób rozpoznają cię na cnn.com i wyświetlają tam znajomych.
Źródło:
źródło
Rób to, co robi Google. Utwórz plik PHP, który ustawia ciasteczko we wszystkich 3 domenach. Następnie w domenie, w której ma zostać ustawiony motyw, utwórz plik HTML, który załaduje plik PHP, który ustawia plik cookie w pozostałych 2 domenach. Przykład:
Następnie dodaj wywołanie zwrotne na znaczniku body. Dokument zostanie załadowany tylko wtedy, gdy obrazy zostaną w pełni załadowane, czyli gdy pliki cookie zostaną ustawione w pozostałych 2 domenach. Oddzwonienie przy obciążeniu:
Ustawiamy pliki cookie w innych domenach za pomocą pliku PHP takiego:
Teraz pliki cookie są ustawione w trzech domenach.
źródło
Nie można udostępniać plików cookie między domenami. Możesz jednak zezwolić na dostęp do wszystkich subdomen. Aby umożliwić wszystkim subdomenom
example.com
dostęp, ustaw domenę na.example.com
.Nie można jednak
otherexample.com
uzyskać dostępu doexample.com
plików cookie.źródło
.google.com
pliki cookie podczas przeglądania YouTube?Możesz spróbować przenieść plik cookie val do innej domeny za pomocą tagu obrazu.
Twój przebieg może być różny, gdy próbujesz to zrobić, ponieważ niektóre przeglądarki wymagają posiadania odpowiednich zasad P3P w domenie WebApp2 lub przeglądarka odrzuci ciasteczko.
Jeśli spojrzysz na zasady plus.google.com p3p, zobaczysz, że ich zasady to:
CP = „To nie jest zasada P3P! Więcej informacji można znaleźć na stronie http://www.google.com/support/accounts/bin/answer.py?hl=pl&answer=151657 ”.
to jest zasada, której używają dla swoich przycisków +1 do tych żądań między domenami.
Kolejnym ostrzeżeniem jest to, że jeśli korzystasz z https, upewnij się, że tag obrazu wskazuje adres https, w przeciwnym razie pliki cookie nie zostaną ustawione.
źródło
Na stronie nfriedly.com jest dobry przegląd tego, jak robi to Facebook
Istnieje również odcisk palca przeglądarki, który nie jest tym samym co plik cookie, ale służy podobnemu celowi, ponieważ pomaga zidentyfikować użytkownika z pewnym stopniem pewności. Jest tutaj post na temat przepełnienia stosu, który odwołuje się do jednej metody pobierania odcisków palców
źródło
Aby uzyskać pliki cookie, można użyć niewidocznych elementów iframe. Załóżmy, że istnieją dwie domeny: a.com i b.com. Do index.html domeny a.com można dodać (zauważ wysokość = 0 szerokość = 0):
W ten sposób Twoja witryna otrzyma pliki cookie b.com, zakładając, że http://b.com ustawia pliki cookie.
Następną rzeczą byłoby manipulowanie stroną wewnątrz elementu iframe za pomocą JavaScript. Operacje wewnątrz iframe mogą stać się wyzwaniem, jeśli nie jest się właścicielem drugiej domeny. Ale w przypadku dostępu do obu domen odsyłających na odpowiednią stronę internetową pod adresem src iframe należy podać pliki cookie, które chcieliby uzyskać.
źródło
Web.config
Dołącz początek interfejsu użytkownika i ustaw wartość Zezwalaj na media
źródło
Stworzyłem moduł NPM, który pozwala udostępniać lokalnie przechowywane dane między domenami: https://www.npmjs.com/package/cookie-toss
Korzystając z elementu iframe hostowanego w domenie A, można przechowywać wszystkie dane użytkownika w domenie A i odwoływać się do tych danych, wysyłając żądania do elementu iframe domeny A.
Domeny B, C itd. Mogą zatem wstrzykiwać ramkę iframe i wysyłać do niej żądania przechowywania i uzyskiwania dostępu do żądanych danych. Domena A staje się centrum wszystkich udostępnianych danych.
Dzięki białej liście domen w domenie A możesz mieć pewność, że tylko Twoje witryny zależne będą miały dostęp do danych w domenie A.
Sztuką jest umieszczenie kodu w elemencie iframe w domenie A, który jest w stanie rozpoznać, które dane są wymagane. Plik README w powyższym module NPM jest bardziej szczegółowo opisany w procedurze.
Mam nadzieję że to pomoże!
źródło
Czytać
Cookie
wWeb Api
źródło