2009-05-27 8 views
4

Supposons que j'ai une application web que je veux intégrer dans un autre site en utilisant un iframe. L'iframe fait référence à mon site et fonctionne indépendamment de la page web d'hébergement.Comment puis-je conserver une session dans un iframe?

Eh bien, le navigateur considère que l'iframe est un site tiers, par conséquent son cookie de session est considéré comme un cookie tiers. Certaines méthodes existent pour rendre les navigateurs heureux (par exemple, l'en-tête P3P), mais il est toujours possible que l'utilisateur ait des cookies tiers entièrement désactivés. Si tel est le cas, les cookies de session ne peuvent pas persister dans un iframe.

Quelles sont les bonnes méthodes pour persister une session dans un iframe sur un site tiers?

Répondre

2

Mon intention est de suivre une session dans l'iframe, afin que les clics et les rechargements conservent leur état. Il n'est pas nécessaire de lier des sessions entre l'iframe et le site d'hébergement.

Le meilleur que je pourrais trouver est des sessions sans cookie. C'est un peu manuel, mais avec ce site qui tourne sous PHP, je dois juste m'assurer que la chaîne de queres contient toujours "PHPSESSID=x" et qu'elle sera automatiquement attachée à cet identifiant de session.

4

J'ai rencontré un problème similaire à celui que vous avez ici. Il existe une solution de contournement (ne fonctionnera pas si vous avez l'intention de suivre le comportement des utilisateurs sur plusieurs sites).

i. Placez un cookie persistant de première partie sur le domaine où votre iframe doit être hébergé. (Cela peut être fait en utilisant JavaScript).

ii. Injectez dynamiquement l'iframe et passez la valeur du cookie à votre site.

iii. Si vous avez l'intention de suivre le comportement des utilisateurs d'un site à l'autre, modifiez le code ci-dessus pour utiliser des cookies tiers lorsque le navigateur le permet, sinon, utilisez la méthode ci-dessus.

Je n'ai pas rencontré d'autre moyen de contourner ce problème. Si vous trouvez une solution plus acceptable, faites le moi savoir.

Questions connexes