Accès aux cookies interdomaines (ou session)
Alors que je me rends compte que c'est souvent lié à la cross site scripting attaques, ce que je me pose, c'est comment une session restera valide pendant plusieurs sous-domaines appartenant à un même domaine (exemple: une connexion de l'utilisateur en une seule fois, et d'être en mesure d'accéder à la fois à subdomain1.domain.com et subdomain2.domain.com à la même session). Je suppose que j'ai d'abord besoin de comprendre comment il fonctionne, mais je n'ai pas encore été en mesure de trouver beaucoup qui serait de toute pertinence.
Mais là encore, peut-être que je n'étais pas en train de demander la bonne question.
Merci d'avance 🙂
source d'informationauteur mtranda
Vous devez vous connecter pour publier un commentaire.
Inproc sessions ne peut rester valide, vous pouvez toutefois le code de votre application web à autoriser les cookies sur plusieurs sous-domaines. Vous devez définir le domaine de l'égalité:
Souvenez-vous de la période.
Il y a assez peu de moyens pour partager les données de session ou un cookie de données dans tous les domaines. Le plus simple est de le partager sur le côté serveur grâce au partage d'un magasin de données. Mais vous ne poseriez pas cette question si c'était aussi facile que ça.
L'autre façon de faire cela est d'autant plus simple. Le domaine
one.com
contient certaines données de session-direname=aleem
etid=123
et souhaite transmettre le long de latwo.com
. Il va suivre ces étapes:two.com/api/?name=aleem&id=123
two.com
reçoit les données via les paramètres de la requête, il crée un cookie avec les données. Ce cookie sera stocké sous latwo.com
domaine.two.com
redirigera ensuite retour à laREFERER
qui, dans ce cas, êtreone.com
C'est un scénario simplifié. Le domaine
two.com
doit être capable de faire confiance àone.com
et non seulement cela, mais il a besoin de savoir que la demande est authentique et pas seulement conçue par l'utilisateur, donc vous devez utiliser des clés publiques/privées pour atténuer ce.Par défaut, tous les cookies d'un site sont stockées sur le client, et tous les cookies sont envoyés au serveur avec toute demande à ce site. En d'autres termes, chaque page d'un site obtient tous les cookies de ce site. Toutefois, vous pouvez définir la portée de cookies de deux façons:
Vous pouvez en apprendre plus ici.
Les commentaires sur les cookies pour le domaine de permettre à des sous-domaines pour recevoir ce cookie vous donner ce côté, mais ce qui manque, c'est la cohérence de la session.
Je pense que c'est très bien comme le problème de la conservation de l'état sur les serveurs dans une batterie de serveurs et la solution est probablement de s'assurer que votre session magasin est constante dans les deux sites (si elles ne sont pas de serveur à partir du même site web dans IIS). Vous pouvez déplacer la Session du magasin en SQL Server (COMMENT faire: Configurer SQL Server pour Stocker ASP.NET l'État de Session) qui devrait servir l'objectif de chaque site de requête serait le même magasin, lors de la recherche pour la session de données relatives aux cookies qu'ils ont été présentés avec.
J'espère que vous met sur la bonne voie.
Si vous avez la possibilité de configurer un sous-domaine, vous pouvez le faire:
Dans votre sous-domaine de fichiers html, inclure un fichier javascript en haut comme ceci:
.asp, recherchez votre logged_in cookie et si non présent, l'affichage d'une page dire, http://common.domain.com/login.asp en utilisant quelque chose comme
Une fois qu'une personne soumet nom d'utilisateur mot de passe, de le soumettre à la même connexion.asp et de définir le cookie de session (qui sera mis en common.domain.com nom de domaine) et ensuite rediriger vers
http://subdomain1.domain.com
.Ce qui va se passer maintenant est, un appel sera fait à l'embedded "common.domain.com/check.asp" et les cookies pour common.domain.com sera envoyé par le navigateur à la demande. Afin que vous sachiez si votre session est valide ou pas, même lorsque vous êtes dans subdomain1.domain.com.
Vous pouvez définir un cookie pour un domaine spécifique.
En php, le la fonction setCookie() méthode contient un paramètre dans laquelle vous pouvez spécifier le domaine de premier niveau, de sorte que le cookie est valide pour tous les sous-domaines. Basé sur des tags, je vois que vous travaillez dans asp.net. Probablement il en existe aussi pour asp...
après un peu de recherche pour l'asp:
essayez ceci:
ou lire cette
Voici une solution qui fonctionne:
http://anantgarg.com/2010/02/18/cross-domain-cookies-in-safari/