Cookie bloqué/non enregistré dans IFRAME dans Internet Explorer

j'ai deux sites Web, disons qu'ils sont example.com et anotherexample.net . Sur anotherexample.net/page.html , j'ai un IFRAME SRC="http://example.com/someform.asp" . Que IFRAME affiche un formulaire que l'utilisateur doit remplir et soumettre à http://example.com/process.asp . Quand j'ouvre le formulaire (" someform.asp ") dans sa propre fenêtre du navigateur, tout fonctionne bien. Cependant, quand je charge someform.asp comme une IFRAME dans IE 6 ou IE 7, les cookies pour example.com ne sont pas sauvés. dans Firefox ce problème n'apparaît pas.

pour les tests, j'ai créé une configuration similaire sur http://newmoon.wz.cz/test/page.php .

example.com utilise des sessions basées sur les cookies (et il n'y a rien que je puisse faire à ce sujet), donc sans cookies, process.asp ne s'exécute pas. comment forcer IE à sauvegarder ces cookies?

les Résultats de renifler le trafic HTTP: /someform.réponse de l'asp, il y a une réponse valide par session Set-en-tête de Cookie (par exemple Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY ), mais sur POST /process.requête asp, il n'y a pas D'en-tête de Cookie du tout.

Edit3: certains scripts AJAX+serverside sont apparemment capables de contourner le problème, mais cela ressemble beaucoup à un bug, plus il ouvre un tout nouveau jeu de trous de sécurité . Je ne veux pas que mes applications utilisent une combinaison de bug+trou de sécurité juste parce que c'est facile.

Edit: la Politique P3P était la cause fondamentale , explication complète ci-dessous.

384
demandé sur Piskvor 2008-12-23 20:08:07

22 réponses

j'ai fait en sorte que cela fonctionne, mais la solution est un peu complexe, alors soyez indulgents.

Ce qui se passe

comme il est, Internet Explorer donne plus bas niveau de confiance aux pages IFRAME (C'est-à-dire appelle ce contenu" tiers"). Si la page à l'intérieur de L'IFRAME n'a pas de politique de confidentialité, ses cookies sont bloqués (ce qui est indiqué par l'icône de l'oeil dans la barre d'état, lorsque vous cliquez sur elle, il vous montre une liste D'URLs bloquées).

le mauvais œil http://stuff.piskvor.org/cookies_blocked_MSIE_eye.png

dans ce cas, lorsque les cookies sont bloqués, l'identifiant de session n'est pas envoyé, et le script cible envoie une erreur 'session not found'.

(j'ai essayé de définir l'identifiant de session dans le formulaire et de le charger à partir des variables POST. cela aurait fonctionné , mais pour des raisons politiques Je ne pouvais pas le faire.)

il est possible de rendre la page à l'intérieur de L'IFRAME plus fiable: si la page intérieure envoie un en-tête P3P avec une politique de confidentialité qui est acceptable pour IE, les cookies seront acceptés .

Comment le résoudre

créer une politique p3p

un bon point de départ est le tutoriel W3C . Je l'ai parcouru, j'ai téléchargé le éditeur de la Politique de confidentialité D'IBM et là j'ai créé une représentation de la Politique de confidentialité et lui ai donné un nom de référence (ici il était policy1 ).

NOTE : à ce stade, vous avez réellement besoin de savoir si votre site a une politique de confidentialité, et si non, Créer - si elle collecte des données utilisateur, quel type de données, ce qu'il fait avec elle, qui y a accès, etc. Vous devez trouver cette information et penser à ce sujet. le simple fait de coller quelques étiquettes ne suffira pas. cette étape ne peut pas être faite purement dans le logiciel, et peut être très politique (par exemple "devrions-nous vendre nos statistiques de clic?").

(p. ex. " le site est exploité par ACME Ltd., il utilise des identificateurs anonymes par session pour son fonctionnement, recueille des données d'utilisateur seulement si explicitement autorisé et seulement pour les buts suivants, les données sont stockées aussi longtemps que nécessaire, seule Notre société a accès à elle, etc. etc.").

(lors de l'édition avec cet outil, il est possible de voir des erreurs/omissions dans la police. Aussi très utile est l'onglet "Politique HTML": en bas, il a une "évaluation de la Politique" - une vérification rapide si la politique sera bloquée par les paramètres par défaut de IE)

l'éditeur exporte vers A.fichier p3p, qui est une représentation XML de la Politique ci-dessus. De plus, il peut exporter une "version compacte" de cette politique.

lien vers le Politique

puis un fichier de référence de politique ( http://example.com/w3c/p3p.xml ) était nécessaire (un index des politiques de confidentialité que le site utilise):

<META>
  <POLICY-REFERENCES>
    <POLICY-REF about="/w3c/example-com.p3p#policy1">
      <INCLUDE>/</INCLUDE>
      <COOKIE-INCLUDE/>
    </POLICY-REF>
  </POLICY-REFERENCES>
</META>

le <INCLUDE> montre tous les URIs qui utiliseront cette politique (dans mon cas, l'ensemble du site). Le fichier que j'ai exporté de L'éditeur a été téléchargé sur http://example.com/w3c/example-com.p3p

envoyer l'en-tête compact avec les réponses

j'ai mis le serveur web à example.com pour envoyer le en-tête compact avec des réponses, comme ceci:

HTTP/1.1 200 OK 
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content

policyref est une URI relative au fichier de référence de la politique (qui à son tour fait référence aux politiques de confidentialité), CP est la représentation de la Politique compacte. notez que la combinaison des en-têtes P3P dans l'exemple peut ne pas être applicable sur votre site Web spécifique; vos en-têtes P3P doivent représenter véridiquement votre propre politique de confidentialité!

Profit!

dans cette configuration, le mauvais oeil n'apparaît pas, les cookies sont enregistrés même dans L'IFRAME, et l'application fonctionne.

Edit: que ne pas faire, sauf si vous aimez défendre contre les poursuites judiciaires

plusieurs personnes ont suggéré "mettez juste quelques étiquettes dans votre en-tête P3P, jusqu'à ce que le mauvais oeil abandonne".

les étiquettes ne sont pas seulement un tas de bits, ils ont sens du monde réel , et leur utilisation vous donne responsabilités du monde réel !

par exemple, prétendre que vous ne collectez jamais de données utilisateur pourrait rendre le navigateur heureux, mais si vous collectez réellement des données utilisateur, le P3P est en conflit avec la réalité. Tout simplement, vous mentez délibérément à vos utilisateurs , et cela pourrait être un comportement criminel dans certains pays. Comme dans " aller en prison, ne pas collecter 200$".

quelques exemples ( voir p3pwriter pour l'ensemble des balises ):

  • NOI : "le Site web ne recueille pas de données identifiées."(dès qu'il y a une personnalisation, un login, ou une collecte de données (***** Analytics, anyone?), vous doit le reconnaître dans votre P3P)
  • STP : les renseignements sont conservés à des fins précises. Cela implique que l'information être jetés dans les plus brefs délais. Les Sites doivent avoir une politique de conservation qui établit un calendrier de destruction. La Politique de conservation doit être incluse ou reliée à la Politique de confidentialité lisible par l'utilisateur du site."(donc si vous envoyez STP mais n'avez pas de politique de rétention, vous peut commettre une fraude. C'est pas cool ça? Pas du tout.)

Je ne suis pas avocat, mais je ne veux pas aller au tribunal pour voir si L'en-tête P3P est vraiment juridiquement contraignant ou si vous pouvez promettre à vos utilisateurs n'importe quoi sans réellement vouloir honorer vos promesses.

424
répondu Piskvor 2014-11-28 07:33:25

j'ai passé une grande partie de la journée à regarder ce truc P3P et je ressens le besoin de partager ce que j'ai découvert.

j'ai remarqué que le concept P3P est très désuet et semble seulement être vraiment utilisé/appliqué par Internet Explorer (IE).

l'explication la plus simple est: IE veut que vous définissiez un en-tête P3P si vous utilisez des cookies.

c'est une bonne idée, et heureusement la plupart du temps ne pas fournir cet en-tête ne causera aucun problème (lire les avertissements du navigateur). Sauf si votre site web/application web est chargé dans un autre site Web en utilisant un (i)cadre. C'est là que IE devient une douleur énorme dans le ***. Il ne vous permettra pas de définir un cookie à moins que L'en-tête P3P ne soit défini.

sachant cela je voulais trouver une réponse aux deux questions suivantes:

  1. qui s'en soucie? En d'autres termes, puis-je être poursuivi si je mets le mot "Pomme de terre" dans l'en-tête?
  2. Que font les autres entreprises?

mes conclusions sont:

  1. tout le monde s'en fout. Je suis incapable de trouver un seul document qui suggère que cette technologie a un poids légal. Au cours de mes recherches, je n'ai pas trouvé un seul pays dans le monde qui a adopté une loi qui vous empêche de mettre le mot "Pomme de terre" dans L'en-tête P3P
  2. à la fois Google et Facebook ont mis un lien dans leur champ d'en-tête P3P référence à une page décrivant pourquoi ils n'ont pas d'en-tête P3P.

le concept est né en 2002 et il m'étonne que ce concept périmé et juridiquement non mis en œuvre est encore forcé sur les développeurs au sein D'IE. Si cet en-tête n'a pas de ramifications légales, il doit être ignoré (ou générer un avertissement ou une notification dans la console). Pas forcée! Je suis maintenant forcé de mettre une ligne dans mon code (et envoyer un en-tête au client) qui ne fait absolument rien.

en bref - pour garder IE heureuse-ajouter la ligne suivante à votre code PHP (D'autres langues devraient ressembler)

header('P3P: CP="Potato"');

Problème résolu, et IE est heureux avec cette pomme de terre.

162
répondu Ruben 2014-12-09 22:38:29

j'ai pu faire disparaître le mauvais œil en ajoutant simplement ce petit en-tête au site dans L'IFrame (solution PHP):

header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');

N'oubliez pas d'appuyer sur ctrl+F5 pour recharger votre site ou L'Explorateur peut encore montrer le mauvais œil, malgré le fait qu'il fonctionne très bien. C'est probablement la raison principale pour laquelle j'ai eu tant de difficultés à le faire fonctionner.

aucun dossier Politique n'était nécessaire du tout.

Modifier: J'ai trouvé une belle entrée de blog qui explique le problème avec les cookies dans IFrames. Il a aussi un correctif rapide dans le code C# : Frames, pages ASPX et cookies rejetés

55
répondu Helo 2011-01-28 13:21:22

C'est caché dans les commentaires d'autres réponses, mais j'ai presque manqué, de sorte qu'il semble qu'il mérite sa propre réponse.

pour réviser: pour QU'IE accepte les cookies de tiers, vous avez besoin de servir vos fichiers avec un en-tête http appelé p3p dans le format:

CP="my compact p3p policy"

mais, p3p est pratiquement mort en tant que norme à ce stade et vous pouvez facilement obtenir IE de travailler sans investir le temps et les ressources juridiques dans la création d'une véritable politique p3p. C'est parce que si votre en-tête de politique P3P compact est invalide, C'est-à-dire qu'il le traite comme une bonne politique et accepte les cookies de tiers. Vous pouvez donc utiliser un en-tête p3p comme celui-ci

CP="This site does not have a p3p policy."

vous pouvez éventuellement inclure un lien vers une page qui explique pourquoi vous n'avez pas de politique p3p, comme le font Google et Facebook (ils pointent ici: https://support.google.com/accounts/answer/151657 et ici: https://www.facebook.com/help/327993273962160 / ).

enfin, il est important de noter que tous les fichiers servis à partir du site tiers doivent avoir l'en-tête p3p, et pas seulement celui qui configure le cookie, de sorte que vous ne pouvez pas simplement faire cela dans votre PHP, asp.net, etc code. Il est probablement préférable de configurer le serveur web (IIS ou Apache).

21
répondu David Hammond 2013-05-24 14:16:26

j'ai eu ce problème aussi, je pensais poster le code que j'ai utilisé dans mon projet MVC2. Soyez prudent lorsque dans le cycle de vie de la page vous ajoutez dans l'en-tête ou vous obtiendrez une HttpException " le serveur ne peut pas ajouter d'en-tête après que les en-têtes HTTP ont été envoyés ."J'ai utilisé un attribut personnalisé Actionfilterat sur la méthode OnActionExecuting (appelé avant l'exécution de l'action).

/// <summary>
/// Privacy Preferences Project (P3P) serve a compact policy (a "p3p" HTTP header) for all requests
/// P3P provides a standard way for Web sites to communicate about their practices around the collection, 
/// use, and distribution of personal information. It's a machine-readable privacy policy that can be 
/// automatically fetched and viewed by users, and it can be tailored to fit your company's specific policies.
/// </summary>
/// <remarks>
/// More info http://www.oreillynet.com/lpt/a/1554
/// </remarks>
public class P3PAttribute : ActionFilterAttribute
{
    /// <summary>
    /// On Action Executing add a compact policy "p3p" HTTP header
    /// </summary>
    /// <param name="filterContext"></param>
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext.Current.Response.AddHeader("p3p","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

        base.OnActionExecuting(filterContext);
    }
}

exemple d'utilisation:

[P3P]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}
20
répondu daniellmb 2011-10-27 19:21:55

il s'agit d'un excellent sujet sur la question, mais j'ai trouvé qu'un détail important (qui était essentiel au moins dans mon cas) qui n'a pas été posté ici ou ailleurs (je m'excuse si je viens de le manquer) était que la ligne P3P doit être passée dans l'en-tête de chaque fichier envoyé à partir du serveur tiers, même les fichiers ne pas configurer ou en utilisant les cookies tels que les fichiers ou les images Javascript. Sinon, les cookies seront bloqués. J'ai plus à ce sujet dans un post ici: http://posheika.net/?p=110

14
répondu Juris 2010-08-23 22:44:45

quiconque ayant ce problème dans le noeud.js.

puis ajouter ce module p3p, et activer ce module à middleware.

npm install p3p

j'utilise express donc je l'ajoute dans app.js

tout d'abord exiger ce module dans app.js

var express = require('express');
var app = express();
var p3p = require('p3p');

puis l'utiliser comme middleware

app.use(p3p(p3p.recommended));

il va ajouter des en-têtes p3p à l'objet res. Pas besoin de faire des choses extra.

Vous obtiendrez plus d'informations à:

https://github.com/troygoode/node-p3p

5
répondu Harshal_m_joshi 2013-04-17 07:06:34

si quelqu'un cherche la ligne Apache, nous avons utilisé celle-ci.

en-Tête set P3P "CP=\"Grâce IE8\""

peu importe la valeur de CP, tant qu'il y a l'en-tête P3P.

5
répondu so_mv 2014-01-07 22:06:01

une chose possible à faire est d'ajouter le domaine aux sites autorisés dans les Outils - > options internet -> Confidentialité - > sites: somedomain.com - > allow - > OK.

4
répondu heikkim 2009-04-17 10:10:20

Ce post fournit des commentaires sur la norme P3P et une petite solution qui réduit les problèmes avec IE7 et IE8.

3
répondu Henrik Aasted 2011-04-05 13:02:35

une solution que je n'ai pas vu mentionné ici, est d'utiliser session de stockage au lieu de cookies. Bien sûr, cela ne correspond peut-être pas aux besoins de tout le monde, mais dans certains cas, c'est une solution facile.

3
répondu ripper234 2012-06-13 12:00:40

a obtenu un problème similaire, également allé pour enquêter sur la façon de générer la Politique P3P ce matin, voici mon post sur la façon de générer votre propre politique et l'utilisation dans le site web :) http://everydayopenslikeaflower.blogspot.com/2009/08/how-to-create-p3p-policy-and-implement.html

2
répondu Ping 2009-08-21 15:39:51

j'ai déjà mis en place une politique P3P complète, mais je ne voulais pas revivre les tracas d'un nouveau projet sur lequel je travaillais. J'ai trouvé ce lien utile pour une solution simple au problème, n'ayant qu'à spécifier une politique compacte minimale de P3P de "CAO PSA OUR":

http://blog.sweetxml.org/2007/10/minimal-p3p-compact-policy-suggestion.html

l'article cite un lien (maintenant brisé) vers un article de Microsoft kb. Le la politique a fait l'affaire pour moi!

2
répondu Joel Mitchell 2011-09-13 14:47:09

j'enquêtais sur ce problème en ce qui concerne l'ouverture de session via les Services de contrôle D'accès Azure, et je n'ai pas été en mesure de connecter la tête et les queues de quoi que ce soit.

Alors, suis tombé sur ce post https://blogs.msdn.microsoft.com/ieinternals/2011/03/10/beware-cookie-sharing-in-cross-zone-scenarios/

en bref, IE ne partage pas les cookies entre les zones (par ex. Internet / sites de Confiance).

donc, si votre La cible IFrame et la page html sont dans la zone différente de P3P n'aidera pas avec quoi que ce soit.

2
répondu Frode Nilsen 2016-04-06 14:23:18

vous pouvez également combiner les p3p.xml et politique.fichiers xml en tant que tels:

/home/ubuntu/sites/shared/w3c/p3p.xml

<META xmlns="http://www.w3.org/2002/01/P3Pv1">
  <POLICY-REFERENCES>
    <POLICY-REF about="#policy1">
      <INCLUDE>/</INCLUDE>
      <COOKIE-INCLUDE/>
    </POLICY-REF>
  </POLICY-REFERENCES>
  <POLICIES>
    <POLICY discuri="" name="policy1">
      <ENTITY>
        <DATA-GROUP>
          <DATA ref="#business.name"></DATA> 
          <DATA ref="#business.contact-info.online.email"></DATA> 
        </DATA-GROUP>
      </ENTITY>
      <ACCESS>
        <nonident/>
      </ACCESS>
      <!-- if the site has a dispute resolution procedure that it follows, a DISPUTES-GROUP should be included here -->
      <STATEMENT>
        <PURPOSE>
          <current/>
          <admin/>
          <develop/>
        </PURPOSE>
        <RECIPIENT>
          <ours/>
        </RECIPIENT>
        <RETENTION>
          <indefinitely/>
        </RETENTION>
        <DATA-GROUP>
          <DATA ref="#dynamic.clickstream"/>
          <DATA ref="#dynamic.http"/>
        </DATA-GROUP>
      </STATEMENT>
    </POLICY>
  </POLICIES>
</META>

j'ai trouvé la façon la plus facile d'ajouter un en-tête est proxy via Apache et utiliser mod_headers, comme tel:

<VirtualHost *:80>
  ServerName mydomain.com

  DocumentRoot /home/ubuntu/sites/shared/w3c/

  ProxyRequests off
  ProxyPass /w3c/ !
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
  ProxyPreserveHost on

  Header add p3p 'P3P:policyref="/w3c/p3p.xml", CP="NID DSP ALL COR"'
</VirtualHost>

donc nous proxy toutes les requêtes sauf celles à /w3c/p3p.xml à notre serveur d'application.

vous pouvez tout tester avec le W3C validator

1
répondu Kris 2012-11-09 15:46:56

si vous possédez le domaine qui doit être intégré , alors vous pouvez, avant d'appeler la page qui inclut L'IFrame, rediriger vers ce domaine, qui va créer le cookie et rediriger retour, comme expliqué ici: http://www.mendoweb.be/blog/internet-explorer-safari-third-party-cookie-problem /

cela fonctionnera pour Internet Explorer mais aussi pour Safari (parce que Safari bloque également les cookies tiers).

1
répondu Matthew 2014-08-27 15:18:04

je sais qu'il est un peu tard pour mettre ma contribution sur ce sujet, mais j'ai perdu tellement d'heures que peut-être cette réponse aidera quelqu'un.

j'essayais d'appeler un cookie tiers sur mon site et bien sûr il ne fonctionnait pas sur Internet Explorer 10, même à un faible niveau de sécurité... ne me demandez pas pourquoi. Dans le iframe, j'appelais un read_cookie.php (echo $_COOKIE) avec ajax.

et je ne sais pas pourquoi j'étais incapable d'établir la Politique P3P pour pour résoudre le problème...

au cours de mes recherches, j'ai vu quelque chose à propos du fonctionnement du cookie dans JSON. Je n'essaie même pas parce que je pensais que si le cookie ne passe pas à travers une iframe, il ne passera plus à travers un tableau...

devinez quoi, il fait! Donc si vous json_encode votre cookie puis décodez après votre demande ajax, vous l'obtiendrez!

peut - être qu'il y a quelque chose que j'ai manqué et si je l'ai fait, toutes mes excuses, mais je n'ai jamais vu quelque chose de si stupide. Bloquez les cookies tiers pour des raisons de sécurité, pourquoi pas, mais laissez passer s'ils sont encodés? Où est la sécurité?

j'espère que ce post aidera à quelqu'un et encore, si j'ai raté quelque chose et que je suis bête, merci de m'éduquer!

1
répondu pierreaurelemartin 2014-12-09 08:31:07

cela a finalement fonctionné pour moi (après beaucoup de hâte et de générer quelques politiques en utilisant le générateur de politiques IBMs). Vous pouvez télécharger le générateur de politique ici: http://www.softpedia.com/get/Security/Security-Related/P3P-Policy-Editor.shtml

Je n'ai plus été en mesure de télécharger le générateur à partir du site officiel D'IBM.

j'ai créé ces fichiers dans le dossier racine de mon application web

/index.php
/w3c/policy.html (Human readable format)
/w3c/p3p.xml
/w3c/policy.p3p
  1. de l'Index.php: il suffit d'envoyer un en-tête supplémentaire:
header('P3P: policyref="/w3c/p3p.xml", CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"');
  1. contenu p3p.xml
<META>
    <POLICY-REFERENCES>
        <POLICY-REF about="/w3c/policy.p3p#App">
            <INCLUDE>/</INCLUDE>
            <COOKIE-INCLUDE/>
        </POLICY-REF>
    </POLICY-REFERENCES>
</META>
  1. contenu de ma politique.fichier html

<html>
<head>
<STYLE type="text/css">
title { color: #3333FF}
</STYLE>
<title>Privacy Statement for YOUR COMPANY NAME</title>
</head>
<body>
<h1 class="title">Privacy Policy</h1>
<!-- "About Us" section of privacy policy -->
<h2>About Us</h2>
<p>This is a privacy policy for YOUR COMPANY NAME.
Our homepage on the Web is located at <a href="YOURWEBSITE">
YOURWEBSITE</a>.
The full text of our privacy policy is available on the Web at 
<a href="ABSOLUTE URL OF THIS FILE">
ABSOLUTE URL OF THIS FILE</a>
This policy does not tell users where they can go to exercise their opt-in or opt-out options.
<p>We invite you to contact us if you have questions about this policy.
You may contact us by mail at the following address:
<pre>FIRSTNAME LASTNAME
YOUR ADDRESS HERE
</pre>
<p>You may contact us by e-mail at 
<a href="mailto:info@YOURMAIL.de">
info@YOURMAIL.eu</a>. 
You may call us at TELEPHONENUMBER.
<!-- "Privacy Seals" section of privacy policy -->
<h2>Dispute Resolution and Privacy Seals</h2>
<p>We have the following privacy seals and/or dispute resolution mechanisms.
If you think we have not followed our privacy policy in some way, they can help you resolve your concern.
<ul>
<li>
<b>Dispute</b>:
Contact us for further information
</ul>
<!-- "Additional information" section of privacy policy -->
<h2>Additional Information</h2>
<p>
This policy is valid for 1 day from the time that it is loaded by a client.
</p>
<!-- "Data Collection" section of privacy policy -->
<h2>Data Collection</h2>
<p>P3P policies declare the data they collect in groups (also referred to as "statements").
This policy contains 1 data group.
<hr width="50%" align="center">
<h3>Group "App control data"</h3>
<p>We collect the following information:
<ul>
<li>HTTP cookies</li>
</ul>
<p>This data will be used for the following purposes:</p>
<ul>
<li>Completion and support of the current activity.</li>
<li>Web site and system administration.</li>
<li>Research and development.</li>
<li>Historical preservation.</li>
<li>Other purposes<p>Control Flow of the application</p></li>
</ul>
<p>This data will be used by ourselves and our agents.
<p>The data in this group has been marked as non-identifiable. This means that there is no
reasonable way for the site to identify the individual person this data was collected from.
<p>The following explanation is provided for why this data is collected:</p>
<blockquote>This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</blockquote>
<!-- "Use of Cookies" section of privacy policy -->
<hr width="50%" align="center">
<h2>Cookies</h2>
<p>Cookies are a technology which can be used to provide you with tailored information from a Web site. A cookie is an element of data that a Web site can send to your browser, which may then store it on your system. You can set your browser to notify you when you receive a cookie, giving you the chance to decide whether to accept it.
<p>Our site makes use of cookies.
Cookies are used for the following purposes:
<ul>
<li>Site administration
<li>Completing the user's current activity
<li>Research and development
<li>Other
(Control Flow of the application)
</ul>
<!-- "Compact Policy Explanation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Compact Policy Summary</h2>
<p>The compact policy which corresponds to this policy is:
<pre>
    CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV"
</pre>
<p>The following table explains the meaning of each field in the compact policy.
<center><table width="80%" border="1" cols="2">
<tr><td align="center" valign="top" width="20%"><b>Field</b></td><td align="center" valign="top" width="80%"><b>Meaning</b></td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CP=</tt></td>
<td align="left" valign="top" width="80%">This is the compact policy header; it indicates that what follows is a P3P compact policy.</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ALL</tt></td>
<td align="left" valign="top" width="80%">
Access to all collected information is available.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DSP</tt></td>
<td align="left" valign="top" width="80%">
The policy contains at least one dispute-resolution mechanism.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NID</tt></td>
<td align="left" valign="top" width="80%">
The information collected is not personally identifiable.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CURa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for completion of the current activity.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ADMa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for site administration.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DEVa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for research and development.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>HISa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for historical archival purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OTPa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for other purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OUR</tt></td>
<td align="left" valign="top" width="80%">
The data is given to ourselves and our agents.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NOR</tt></td>
<td align="left" valign="top" width="80%">
The data is not kept beyond the current transaction.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NAV</tt></td>
<td align="left" valign="top" width="80%">
Navigation and clickstream data is collected.
</td></tr>
</table></center>
<p>The compact policy is sent by the Web server along with the cookies it describes.
For more information, see the P3P deployment guide at <a href="http://www.w3.org/TR/p3pdeployment">http://www.w3.org/TR/p3pdeployment</a>.
<!-- "Policy Evaluation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Policy Evaluation</h2>
<p>Microsoft Internet Explorer 6 will evaluate this policy's compact policy whenever it is used with a cookie.
The actions IE will take depend on what privacy level the user has selected in their browser (Low, Medium, Medium High, or High; the default is Medium.
In addition, IE will examine whether the cookie's policy is considered satisfactory or unsatisfactory, whether the cookie is a session cookie or a persistent cookie, and whether the cookie is used in a first-party or third-party context.
This section will attempt to evaluate this policy's compact policy against Microsoft's stated behavior for IE6.
<p><b>Note:</b> this evaluation is currently experimental and should not be considered a substitute for testing with a real Web browser.
<p><b>Satisfactory policy</b>: this compact policy is considered <em>satisfactory</em> according to the rules defined by Internet Explorer 6.
IE6 will accept cookies accompanied by this policy under the High, Medium High, Medium, Low, and Accept All Cookies settings.
</body></html>
  1. Contenu de la politique.p3p
<?xml version="1.0"?>
<POLICIES xmlns="http://www.w3.org/2002/01/P3Pv1">
    <!-- Generated by IBM P3P Policy Editor version Beta 1.12 built 2/27/04 1:19 PM -->

    <!-- Expiry information for this policy -->
    <EXPIRY max-age="86400"/>

<POLICY
    name="App"
    discuri="ABSOLUTE URL TO policy.html"
    xml:lang="de">
    <!-- Description of the entity making this policy statement. -->
    <ENTITY>
    <DATA-GROUP>
<DATA ref="#business.name">COMPANY NAME</DATA>
<DATA ref="#business.contact-info.online.email">info@YOURMAIL.eu</DATA>
<DATA ref="#business.contact-info.online.uri">YOURWEBSITE</DATA>
<DATA ref="#business.contact-info.telecom.telephone.number">YOURPHONENUMBER</DATA>
<DATA ref="#business.contact-info.postal.organization">FIRSTNAME LASTNAME</DATA>
<DATA ref="#business.contact-info.postal.street">STREET</DATA>
<DATA ref="#business.contact-info.postal.city">CITY</DATA>
<DATA ref="#business.contact-info.postal.stateprov">STAGE</DATA>
<DATA ref="#business.contact-info.postal.postalcode">POSTALCODE</DATA>
<DATA ref="#business.contact-info.postal.country">Germany</DATA>
    </DATA-GROUP>
    </ENTITY>

    <!-- Disclosure -->
    <ACCESS><all/></ACCESS>


    <!-- Disputes -->
    <DISPUTES-GROUP>
        <DISPUTES resolution-type="service" service="YOURWEBSITE CONTACT FORM" short-description="Dispute">
            <LONG-DESCRIPTION>Contact us for further information</LONG-DESCRIPTION>
    <!-- No remedies specified -->
        </DISPUTES>
    </DISPUTES-GROUP>

    <!-- Statement for group "App control data" -->
    <STATEMENT>
        <EXTENSION optional="yes">
            <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="App control data"/>
        </EXTENSION>

    <!-- Consequence -->
    <CONSEQUENCE>
This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</CONSEQUENCE>

    <!-- Data in this statement is marked as being non-identifiable -->
    <NON-IDENTIFIABLE/>

    <!-- Use (purpose) -->
    <PURPOSE><admin/><current/><develop/><historical/><other-purpose>Control Flow of the application</other-purpose></PURPOSE>

    <!-- Recipients -->
    <RECIPIENT><ours/></RECIPIENT>

    <!-- Retention -->
    <RETENTION><no-retention/></RETENTION>

    <!-- Base dataschema elements. -->
    <DATA-GROUP>
    <DATA ref="#dynamic.cookies"><CATEGORIES><navigation/></CATEGORIES></DATA>
    </DATA-GROUP>
</STATEMENT>

<!-- End of policy -->
</POLICY>
</POLICIES>
1
répondu Sebastian Buckpesch 2015-02-26 18:38:40

dans Rails j'utilise ce joyau: https://github.com/merchii/rack-iframe Bawically il définit un ensemble d'abréviations sans un fichier de référence: https://github.com/merchii/rack-iframe/blob/master/lib/rack/iframe.rb#L8

Il est facile à installer lorsque vous n'avez pas de soins sur le sens de la p3p choses.

0
répondu mojovski 2014-04-15 23:20:11

Pour toute personne qui cherche à obtenir le P3P Compacte de travail sur les Politiques avec le contenu statique:

C'est seulement possible si vous êtes en mesure d'envoyer des en-têtes de réponse côté serveur personnalisés avec le contenu statique.

pour une explication plus détaillée, voir ma réponse ici: code P3P en HTML

0
répondu Sly_cardinal 2017-05-23 11:47:19

dans les Rails 3.2 j'utilise:

class ApplicationController < ActionController::Base  

  before_filter :set_p3p  

  private  
    # for IE session cookies thru iframe  
    def set_p3p  
      headers['P3P'] = 'CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"'  
    end  
end  

je tiens ça de: http://dot-net-web-developer-bristol.blogspot.com/2012/04/setting-p3p-header-in-rails-session.html

0
répondu Aaron Mills 2015-06-18 20:27:11

une meilleure solution serait de faire un appel Ajax à l'intérieur de l'iframe à la page qui recevrait/définirait des cookies...

-1
répondu Luca Matteis 2009-01-07 16:06:59