J'ai deux webapps WebApp1 et WebApp2 dans deux domaines différents.
- Je mets un cookie dans WebApp1 dans HttpResponse.
- Comment lire le même cookie de HttpRequest dans WebApp2?
Je sais que cela semble étrange car les cookies sont spécifiques à un domaine donné, et nous ne pouvons pas y accéder à partir de différents domaines; J'ai cependant entendu parler de cookies CROSS-DOMAIN qui peuvent être partagés entre plusieurs webapps. Comment mettre en œuvre cette exigence à l'aide de cookies CROSS-DOMAIN?
Remarque: j'essaye ceci avec des webapps J2EE
la source
Comme d'autres le disent, vous ne pouvez pas partager de cookies, mais vous pouvez faire quelque chose comme ceci:
Bien sûr, ce n'est pas complètement sécurisé, et vous devez créer une sorte de protocole interne entre vos applications pour ce faire.
Enfin, ce serait très ennuyeux pour l'utilisateur si vous faites quelque chose comme ça dans chaque demande, mais pas si ce n'est que la première.
Mais je pense qu'il n'y a pas d'autre moyen ...
la source
cookiebaker
serait mieux ;-)Pour autant que je sache, les cookies sont limités par la politique de la "même origine". Cependant, avec CORS, vous pouvez recevoir et utiliser les cookies "Serveur B" pour établir une session persistante de "Serveur A" sur "Serveur B".
Bien que cela nécessite des en-têtes sur le "serveur B":
Et vous devrez envoyer le drapeau " withCredentials " sur toutes les requêtes "Server A" (ex:
xhr.withCredentials = true;
)Vous pouvez lire à ce sujet ici:
http://www.html5rocks.com/en/tutorials/cors/
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
la source
Les cookies interdomaines n'existent pas. Vous pouvez partager un cookie entre
foo.example.com
etbar.example.com
mais jamais entreexample.com
etexample2.com
et c'est pour des raisons de sécurité.la source
foo.example.com
etbar.example.com
?La solution la plus intelligente est de suivre le chemin de Facebook à ce sujet. Comment Facebook sait-il qui vous êtes lorsque vous visitez un domaine? C'est en fait très simple :
Le bouton J'aime permet en fait à Facebook de suivre tous les visiteurs du site externe, qu'ils cliquent ou non dessus. Facebook peut le faire car il utilise un iframe pour afficher le bouton. Un iframe est quelque chose comme une fenêtre de navigateur intégrée dans une page. La différence entre l'utilisation d'un iframe et d'une simple image pour le bouton est que l' iframe contient une page Web complète - de Facebook . Il n'y a pas grand-chose sur cette page, à l'exception du bouton et des informations sur le nombre de personnes qui ont aimé la page actuelle.
Ainsi, lorsque vous voyez un bouton J'aime sur cnn.com, vous visitez en fait une page Facebook en même temps. Cela permet à Facebook de lire un cookie sur votre ordinateur, qu'il a créé la dernière fois que vous vous êtes connecté à Facebook.
Une règle de sécurité fondamentale dans chaque navigateur est que seul le site Web qui a créé un cookie peut le lire ultérieurement. Et c'est l'avantage de l'iframe: il permet à Facebook de lire votre cookie Facebook même lorsque vous visitez un autre site Web. C'est ainsi qu'ils vous reconnaissent sur cnn.com et y présentent vos amis.
La source:
la source
Faites ce que fait Google. Créez un fichier PHP qui définit le cookie sur les 3 domaines. Ensuite, sur le domaine où le thème va être défini, créez un fichier HTML qui chargerait le fichier PHP qui définit le cookie sur les 2 autres domaines. Exemple:
Ajoutez ensuite un rappel onload sur la balise body. Le document ne se chargera que lorsque les images se chargeront complètement, c'est-à-dire lorsque les cookies sont définis sur les 2 autres domaines. Rappel en charge:
Nous installons les cookies sur les autres domaines en utilisant un fichier PHP comme celui-ci:
Désormais, les cookies sont définis sur les trois domaines.
la source
Vous ne pouvez pas partager de cookies entre plusieurs domaines. Vous pouvez cependant autoriser l'accès à tous les sous-domaines. Pour autoriser tous les sous-domaines
example.com
à avoir accès, définissez le domaine sur.example.com
.Il n'est cependant pas possible de donner
otherexample.com
accès auxexample.com
cookies de.la source
.google.com
cookies apparaissent lors de la navigation sur YouTube?Vous pouvez tenter de pousser la valeur du cookie vers un autre domaine à l'aide d'une balise d'image.
Votre kilométrage peut varier lorsque vous essayez de le faire, car certains navigateurs nécessitent que vous ayez une politique P3P appropriée sur le domaine WebApp2 ou le navigateur rejettera le cookie.
Si vous regardez la politique de plus.google.com p3p, vous verrez que leur politique est:
CP = "Ce n'est pas une politique P3P! Voir http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 pour plus d'informations."
c'est la politique qu'ils utilisent pour leurs boutons +1 pour ces demandes interdomaines.
Un autre avertissement est que si vous êtes sur https, assurez-vous que la balise d'image pointe également vers une adresse https sinon les cookies ne seront pas définis.
la source
Il y a un bon aperçu de la façon dont Facebook le fait ici sur nfriedly.com
Il existe également une empreinte digitale du navigateur, qui n'est pas la même chose qu'un cookie, mais sert un objectif similaire en ce qu'il vous aide à identifier un utilisateur avec un certain degré de certitude. Il y a un article ici sur Stack Overflow qui fait référence à une méthode d'empreinte digitale
la source
On peut utiliser des iframes invisibles pour obtenir les cookies. Disons qu'il y a deux domaines, a.com et b.com. Pour l'index.html du domaine a.com on peut ajouter (remarquez hauteur = 0 largeur = 0):
De cette façon, votre site Web recevra des cookies b.com en supposant que http://b.com définit les cookies.
La prochaine chose serait de manipuler le site à l'intérieur de l'iframe via JavaScript. Les opérations à l'intérieur d'iframe peuvent devenir un défi si l'on ne possède pas le deuxième domaine. Mais en cas d'accès aux deux domaines, renvoyer la bonne page Web au src d'iframe devrait donner les cookies que l'on souhaite obtenir.
la source
Web.config
Inclure l'origine de l'interface utilisateur et définir Autoriser les informations d'identification sur true
la source
J'ai créé un module NPM, qui vous permet de partager des données stockées localement sur plusieurs domaines: https://www.npmjs.com/package/cookie-toss
En utilisant un iframe hébergé sur le domaine A, vous pouvez stocker toutes vos données utilisateur sur le domaine A et référencer ces données en envoyant des demandes à l'iframe du domaine A.
Ainsi, les domaines B, C, etc. peuvent injecter l'iframe et lui envoyer des demandes pour stocker et accéder aux données souhaitées. Le domaine A devient le hub de toutes les données partagées.
Avec une liste blanche de domaines à l'intérieur du domaine A, vous pouvez vous assurer que seuls vos sites dépendants peuvent accéder aux données du domaine A.
L'astuce consiste à avoir le code à l'intérieur de l'iframe sur le domaine A qui est capable de reconnaître les données qui sont demandées. Le fichier README du module NPM ci-dessus approfondit la procédure.
J'espère que cela t'aides!
la source
Lire
Cookie
dansWeb Api
la source