internet-explorer - temporarios - habilitar cookies internet




Cookie bloqueado/não salvo no IFRAME no Internet Explorer (15)

Eu tenho dois sites, digamos que eles são example.com e anotherexample.net . Em anotherexample.net/page.html , eu tenho um IFRAME SRC="http://example.com/someform.asp" . O IFRAME exibe um formulário para o usuário preencher e enviar para http://example.com/process.asp . Quando eu abro o formulário (" someform.asp ") em sua própria janela do navegador, tudo funciona bem. No entanto, quando eu carregar someform.asp como um IFRAME no IE 6 ou IE 7, os cookies para example.com não são salvos. No Firefox, esse problema não aparece.

Para fins de teste, criei uma configuração semelhante em http://newmoon.wz.cz/test/page.php .

example.com usa sessões baseadas em cookies (e não há nada que eu possa fazer sobre isso), então sem cookies, process.asp não será executado. Como faço para forçar o IE a salvar esses cookies?

Resultados do sniffing do tráfego HTTP: na resposta GET / someform.asp, há um cabeçalho Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY válido por sessão (por exemplo, Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY ), mas na solicitação POST /process.asp, não há cabeçalho Cookie em absoluto.

Edit3: alguns scripts de servidores no AJAX + aparentemente são capazes de contornar o problema, mas isso se parece muito com um bug, além de abrir um novo conjunto de falhas de segurança . Eu não quero que meus aplicativos usem uma combinação de bug + falha de segurança só porque é fácil.

Edit: a política P3P foi a causa raiz , explicação completa abaixo.


Para qualquer um que esteja tentando fazer com que a política do P3P Compact trabalhe com conteúdo estático:

Isso é possível se você puder enviar cabeçalhos de resposta do lado do servidor personalizados com o conteúdo estático.

Para uma explicação mais detalhada, veja minha resposta aqui: Defina o código P3P em HTML


Este é um ótimo tópico sobre o assunto, entretanto eu achei que um detalhe importante (que era essencial pelo menos no meu caso) que não foi postado aqui ou em qualquer outro lugar (peço desculpas se o perdi) foi que a linha P3P deve ser passou no cabeçalho de todos os arquivos enviados a partir do servidor de terceiros, mesmo os arquivos não definindo ou usando os cookies, como arquivos ou imagens em Javascript. Caso contrário, os cookies serão bloqueados. Eu tenho mais sobre isso em um post aqui: http://posheika.net/?p=110


Eu fui capaz de fazer o olho do mal ir embora simplesmente adicionando este pequeno cabeçalho ao site no IFrame (solução PHP):

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

Lembre-se de pressionar ctrl + F5 para recarregar seu site ou o Explorer ainda pode mostrar o mau-olhado, apesar do fato de estar funcionando bem. Esta é provavelmente a principal razão pela qual eu tive tantos problemas para fazê-lo funcionar.

Nenhum arquivo de política era necessário.

Edit: Eu encontrei um bom blog que explica o problema com cookies em IFrames. Ele também tem uma correção rápida no código C #: quadros, páginas ASPX e cookies rejeitados


Eu implementei uma política P3P completa antes, mas não queria passar pelo problema novamente para um novo projeto em que estava trabalhando. Achei esse link útil para uma solução simples para o problema, tendo apenas que especificar uma política P3P compacta mínima de "CAO PSA OUR":

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

O artigo cita um link (agora quebrado) para um artigo do Microsoft kb. A política fez o truque para mim!


Eu tenho que trabalhar, mas a solução é um pouco complexa, então tenha paciência comigo.

O que está acontecendo

Do jeito que está, o Internet Explorer oferece um nível de confiança menor às páginas do IFRAME (o IE chama esse conteúdo de "terceiros"). Se a página dentro do IFRAME não tiver uma Política de Privacidade, seus cookies serão bloqueados (o que é indicado pelo ícone de olho na barra de status, quando você clica nele, mostra uma lista de URLs bloqueados).


(fonte: piskvor.org )

Nesse caso, quando os cookies são bloqueados, o identificador de sessão não é enviado e o script de destino lança um erro de 'sessão não encontrada'.

(Eu tentei definir o identificador de sessão no formulário e carregá-lo de variáveis ​​POST. Isso teria funcionado , mas por motivos políticos eu não poderia fazer isso.)

É possível tornar a página dentro do IFRAME mais confiável: se a página interna envia um cabeçalho P3P com uma política de privacidade aceitável para o IE, os cookies serão aceitos .

Como resolver isso

Crie uma política p3p

Um bom ponto de partida é o tutorial do W3C . Eu passei por isso, baixei o IBM Privacy Policy Editor e lá criei uma representação da política de privacidade e dei a ela um nome para referenciá-la por (aqui era policy1 ).

OBSERVAÇÃO : neste ponto, você precisa descobrir se o site tem uma política de privacidade e, caso contrário, criá-la - se coleta dados do usuário, que tipo de dados, o que faz com eles, quem tem acesso a eles, etc Você precisa encontrar esta informação e pensar sobre isso. Apenas batendo juntos algumas tags não vai cortá-lo. Essa etapa não pode ser feita apenas em software e pode ser altamente política (por exemplo, "devemos vender nossas estatísticas de cliques?").

(por exemplo, "o site é operado pela ACME Ltd., ele usa identificadores anônimos por sessão para sua operação, coleta dados do usuário somente se explicitamente permitido e somente para as seguintes finalidades, os dados são armazenados apenas o tempo que for necessário, somente nossa empresa tem acesso a ele, etc. etc. ").

(Ao editar com esta ferramenta, é possível visualizar erros / omissões na política. Também é muito útil a aba "Política HTML": na parte inferior, tem uma "Avaliação de política" - uma rápida verificação se a política será bloqueada pelas configurações padrão do IE)

O Editor exporta para um arquivo .p3p, que é uma representação XML da política acima. Além disso, pode exportar uma "versão compacta" desta política.

Link para a política

Em seguida, foi necessário um arquivo de referência de política ( http://example.com/w3c/p3p.xml ) (um índice das políticas de privacidade que o site usa):

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

O <INCLUDE> mostra todos os URIs que usarão essa política (no meu caso, o site inteiro). O arquivo de política que eu exportei do Editor foi enviado para http://example.com/w3c/example-com.p3p

Envie o cabeçalho compacto com respostas

Eu configurei o servidor web em example.com para enviar o cabeçalho compacto com as respostas, assim:

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

policyref é um URI relativo ao arquivo de referência de política (que, por sua vez, faz referência às políticas de privacidade), CP é a representação de política compacta. Observe que a combinação de cabeçalhos P3P no exemplo pode não ser aplicável em seu site específico; Seus cabeçalhos P3P DEVEM verdadeiramente representar sua própria política de privacidade!

Lucro!

Nesta configuração, o Evil Eye não aparece, os cookies são salvos mesmo no IFRAME, e o aplicativo funciona.

Edit: O que não fazer, a menos que você gosta de defender de ações judiciais

Várias pessoas sugeriram "basta colocar algumas tags no seu cabeçalho P3P, até que o Evil Eye desista".

As tags não são apenas um monte de bits, elas têm significados no mundo real , e seu uso lhe dá responsabilidades do mundo real !

Por exemplo, fingir que você nunca coleta dados do usuário pode deixar o navegador feliz, mas se você realmente coletar dados do usuário, o P3P está em conflito com a realidade. Puro e simples, você está deliberadamente mentindo para seus usuários , e isso pode ser um comportamento criminoso em alguns países. Como em "ir para a cadeia, não colete $ 200".

Alguns exemplos ( consulte o p3pwriter para o conjunto completo de tags ):

  • NOI : "Web Site não coletou dados identificados." (assim que houver alguma personalização, um login ou qualquer coleta de dados (***** Analytics, alguém?), você deve reconhecê-lo em seu P3P)
  • STP : As informações são retidas para atender ao objetivo declarado. Isso requer que as informações sejam descartadas com a maior brevidade possível. Os sites DEVEM ter uma política de retenção que estabeleça uma tabela de tempo de destruição. A política de retenção DEVE ser incluída ou vinculada à política de privacidade legível do site. "(Portanto, se você enviar STP mas não tiver uma política de retenção, poderá estar cometendo fraude. Como isso é legal? De maneira nenhuma.)

Eu não sou um advogado, mas não estou disposto a ir ao tribunal para ver se o cabeçalho do P3P é realmente legalmente vinculativo ou se você pode prometer algo aos seus usuários sem realmente estar disposto a honrar suas promessas.


Eu tive esse problema também, pensei em postar o código que usei no meu projeto MVC2. Tenha cuidado quando no ciclo de vida da página você adicionar no cabeçalho ou você receberá um HttpException "O servidor não pode anexar o cabeçalho após os cabeçalhos HTTP terem sido enviados ". Eu usei um ActionFilterAttribute personalizado no método OnActionExecuting (chamado antes da ação ser executada).

/// <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);
    }
}

Exemplo de uso:

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

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}

Isso finalmente funcionou para mim (depois de muito trabalho e gerando algumas políticas usando o gerador de políticas da IBM). Você pode downlod o gerador de política aqui: softpedia.com/get/Security/Security-Related/…

Eu não era mais capaz de baixar o gerador do site oficial da IBM.

Eu criei esses arquivos na pasta raiz do meu aplicativo da Web

/index.php
/w3c/policy.html (Human readable format)
/w3c/p3p.xml
/w3c/policy.p3p
  1. Index.php: Apenas envie um cabeçalho adicional:
header('P3P: policyref="/w3c/p3p.xml", CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"');
  1. Conteúdo de p3p.xml
<META>
    <POLICY-REFERENCES>
        <POLICY-REF about="/w3c/policy.p3p#App">
            <INCLUDE>/</INCLUDE>
            <COOKIE-INCLUDE/>
        </POLICY-REF>
    </POLICY-REFERENCES>
</META>
  1. Conteúdo do meu arquivo policy.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:[email protected]">
[email protected]</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. Conteúdo da política.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">[email protected]</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>

Passei grande parte do meu dia olhando para essa coisa do P3P e sinto a necessidade de compartilhar o que descobri.

Eu notei que o conceito P3P é muito desatualizado e parece ser realmente usado / imposto pelo Internet Explorer (IE).

A explicação mais simples é: o IE quer que você defina um cabeçalho P3P se estiver usando cookies.

Esta é uma boa idéia e, felizmente, na maioria das vezes, não fornecer esse cabeçalho não causará nenhum problema (leia os avisos do navegador). A menos que seu site / aplicativo da Web seja carregado em outro site usando um (i) quadro. Este é o lugar onde o IE se torna uma dor enorme no ***. Ele não permitirá que você defina um cookie, a menos que o cabeçalho P3P esteja definido.

Sabendo disso, eu queria encontrar uma resposta para as duas perguntas a seguir:

  1. Quem se importa? Em outras palavras, posso ser processado se eu colocar a palavra "Batata" no cabeçalho?
  2. O que outras empresas fazem?

Minhas descobertas são:

  1. Ninguém se importa. Não consigo encontrar um único documento que sugira que essa tecnologia tenha algum peso legal. Durante a minha pesquisa eu não encontrei um único país ao redor do mundo que tenha adotado uma lei que impeça você de colocar a palavra "Potato" no cabeçalho do P3P.
  2. Tanto o Google quanto o Facebook colocam um link em seu campo de cabeçalho P3P, referindo-se a uma página descrevendo por que eles não têm um cabeçalho P3P.

O conceito nasceu em 2002 e me deixa perplexo que esse conceito ultrapassado e legalmente não implementado ainda seja forçado a desenvolvedores dentro do IE. Se este cabeçalho não tiver ramificações legais, este cabeçalho deve ser ignorado (ou, alternativamente, gerar um aviso ou uma notificação no console). Não aplicado! Agora sou forçado a colocar uma linha no meu código (e enviar um cabeçalho para o cliente) que não faz absolutamente nada.

Em suma - para manter o IE feliz - adicione a seguinte linha ao seu código PHP (Outros idiomas devem ser semelhantes)

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

Problema resolvido, e o IE está feliz com essa batata.


Se alguém está procurando por uma linha Apache; nós usamos este aqui.

Cabeçalho definido P3P "CP = \" Obrigado IE8 \ ""

Realmente não importa o que nós definimos o valor CP, desde que haja o cabeçalho P3P.



Uma solução que não vi mencionada aqui é usar armazenamento de sessão em vez de cookies. É claro que isso pode não se encaixar nos requisitos de todos, mas, em alguns casos, é uma solução fácil.


Você também pode combinar os arquivos p3p.xml e policy.xml como tal:

/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>

Eu encontrei a maneira mais fácil de adicionar um cabeçalho é proxy através do Apache e use mod_headers, como tal:

<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>

Por isso, procuramos todas as solicitações, exceto as do /w3c/p3p.xml para o nosso servidor de aplicativos.

Você pode testar tudo com o validador W3C


Se você possui o domínio que precisa ser incorporado , então você pode, antes de chamar a página que inclui o IFrame, redirecionar para esse domínio, o que criará o cookie e redirecionará de volta, como explicado aqui: http://www.mendoweb.be/blog/internet-explorer-safari-third-party-cookie-problem/

Isso funcionará para o Internet Explorer, mas também para o Safari (porque o Safari também bloqueia os cookies de terceiros).







p3p