web-dev-qa-db-fra.com

Transfert de cookies entre deux sites (l'un est HTTPS)

Un utilisateur vient (via un lien) d'un site http:// à un autre (ayant un domaine différent) https:// site. Nous devons vérifier que ces deux demandes sont effectuées par le même utilisateur. Mais les cookies ne passent pas les limites du domaine. Que faire?

Une solution consiste à ajouter un hachage à l'URL du lien mentionné ci-dessus. Mais ce ne serait pas une solution parfaite pour nous. Y a-t-il d'autres solutions?

2
porton

La solution la plus simple pour le suivi entre sites consiste à définir les informations de session pour les deux domaines lorsque l'utilisateur visite l'un ou l'autre des sites. Ceci est normalement accompli avec un pixel de suivi, qui est chargé dans le premier site en tant que ressource externe depuis le second. Le pixel de suivi est souvent une image GIF transparente 1 X 1 générée par un script côté serveur qui établit simultanément un cookie pour le site d'origine. Lorsque les deux sites utilisent le même protocole (HTTP ou HTTPS), cette méthode fonctionne bien. En raison de diverses restrictions de sécurité, principalement mises en œuvre par les navigateurs Web, la combinaison des deux protocoles déclenche généralement un message d'avertissement à l'intention de l'utilisateur.

Cependant, ce n'est pas le cas lorsque la page principale est chargée via HTTP. Les ressources externes des sites sécurisés peuvent être chargées dans une page non cryptée, y compris des pixels de suivi pour définir des cookies pour les sites sécurisés (à l'exception des logiciels/plug-ins conçus pour bloquer une telle activité), sans notifier à l'utilisateur un contenu mixte. Si vos utilisateurs visitent toujours le site non crypté en premier, vous pouvez facilement définir un cookie à partir du site crypté lors de cette visite.

Le scénario inverse est plus difficile, lorsqu'un utilisateur visite d'abord le site sécurisé et doit être suivi sur le site non sécurisé. Une solution consiste à déployer un code côté serveur qui effectue plusieurs redirections. Étant donné deux sites Web https://example.com et http://foobar.com:

  1. Lorsqu'un utilisateur visite https://example.com, le site vérifie l'existence de son cookie.

  2. Si le cookie est introuvable, l'utilisateur est redirigé vers http://example.com, où les cookies pour example.com et foobar.com sont définis dans une page non cryptée.

  3. L'utilisateur est redirigé vers https://example.com où le cookie peut être lu.

Cette méthode fonctionne tant qu'il existe un accès de base non chiffré à example.com. Notez que si le indicateur sécurisé n'est pas défini pour un cookie, il peut être créé sur une connexion non chiffrée et lu par la suite sur une connexion sécurisée.

2
dartonw