Si vous utilisez une application ou un onglet de page Facebook, ou plus généralement une iframe appelant un domaine différent, vous constaterez que les sessions et les cookies ne sont pas conservés lors de la navigation.

Le problème

« Il ne s’agit pas d’un bug, mais d’une fonctionnalité » : par défaut Internet Explorer est restrictif sur la politique de confidentialité liée aux domaines tiers appelés en iframe. Pour faire simple on peut considérer que les cookies sont simplement désactivés. Or notre session se base sur un identifiant unique… transmis par défaut via cookie.

La solution

Il existe un moyen pour que le site tiers (notre application en l’occurence) déclare sa politique de confidentialité et qu’Internet Explorer conserve les cookies, et le plus simple pour cela est d’envoyer un HTTP header P3P. Pour faire court, il suffit de rajouter cet appel dans notre code, en PHP :
<?php
    // Exemple en PHP
    header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
?>

Pour plus de détails

Pour creuser le sujet et connaitre la signification de ce charabia, je vous invite à consulter cette documentation sur la déclaration P3P.

Les commentaires sont fermés.