Cookie заблокирован/не сохранен в IFRAME в Internet Explorer

У меня есть два веб-сайта, пусть говорят, что они example.com и anotherexample.net. На anotherexample.net/page.html у меня есть IFRAME SRC="http://example.com/someform.asp". Эта IFRAME отображает форму, которую пользователь может заполнить и отправить в http://example.com/process.asp. Когда я открываю форму ( "someform.asp" ) в своем окне браузера, все работает хорошо. Однако , когда я загружаю someform.asp в качестве IFRAME в IE 6 или IE 7, файлы cookie для example.com не сохраняются. В Firefox эта проблема не появляется.

Для целей тестирования я создал аналогичную настройку на http://newmoon.wz.cz/test/page.php.

example.com использует сеансы на основе файлов cookie (и я ничего не могу с этим поделать), поэтому без файлов cookie process.asp не будет выполняться. Как заставить IE сохранять эти файлы cookie?

Результаты нюхания HTTP-трафика: в ответе GET/someform.asp есть допустимый заголовок Set-Cookie для каждого сеанса (например, Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY), но в запросе POST/process.asp нет заголовка Cookie в все.

Edit3: некоторые скрипты AJAX + serveride, по-видимому, способны обойти проблему, но это очень похоже на ошибку, плюс она открывает целый новый набор дыры в безопасности. Я не хочу, чтобы мои приложения использовали комбинацию ошибок с ошибкой + только потому, что это было легко.

Изменить: политика P3P была основной причиной, полное объяснение ниже.

Ответ 1

Я получил его для работы, но решение немного сложное, так что несите меня.

Что происходит

Как это, Internet Explorer дает более низкий уровень доверия к страницам IFRAME (IE вызывает это "стороннее" содержимое). Если на странице внутри IFRAME нет Политики конфиденциальности, ее файлы cookie заблокированы (что указано значком глаза в строке состояния, когда вы нажимаете на нее, он показывает список заблокированных URL-адресов).

сглаз http://stuff.piskvor.org/cookies_blocked_MSIE_eye.png

В этом случае, когда файлы cookie заблокированы, идентификатор сеанса не отправляется, а целевой script выдает ошибку "session not found".

(Я попытался установить идентификатор сеанса в форму и загрузить его из переменных POST. Это работало бы, но по политическим причинам я не мог этого сделать.)

Можно сделать страницу внутри IFRAME более надежной: , если внутренняя страница отправляет заголовок P3P с политикой конфиденциальности, приемлемой для IE, файлы cookie будут приняты.

Как его решить

Создать политику p3p

Хорошей отправной точкой является учебник W3C. Я прошел через него, загрузил IBM Policy Policy Editor и там я создал представление политики конфиденциальности и дал ему имя для ссылки на него (здесь было policy1).

ПРИМЕЧАНИЕ: на данный момент вам действительно нужно выяснить, существует ли на вашем сайте политика конфиденциальности, а если нет, создайте его - собирает ли пользовательские данные, какие данные, что это делает с ним, кто имеет к нему доступ, и т.д. Вам нужно найти эту информацию и подумать об этом. Просто пошатываясь, несколько тегов не сократят его. Этот шаг не может быть выполнен исключительно в программном обеспечении и может быть очень политическим (например, "продавать ли мы статистику щелчков?" ).

(например, "сайт управляется ACME Ltd., он использует анонимные идентификаторы для каждого сеанса для своей работы, собирает данные пользователя только в случае явного разрешения и только для следующих целей, данные хранятся только до тех пор, пока это необходимо, только наша компания имеет к ней доступ и т.д." ).

(При редактировании с помощью этого инструмента можно просмотреть ошибки/пропуски в политике. Также очень полезна вкладка "Политика HTML": внизу она имеет "Оценку политики" - быстрая проверка, если политика будет заблокирован настройками по умолчанию IE)

Редактор экспортирует в .p3p файл, представляющий собой XML-представление вышеуказанной политики. Кроме того, он может экспортировать "компактную версию" этой политики.

Ссылка на политику

Затем был необходим файл справки по политике (http://example.com/w3c/p3p.xml) (индекс политик конфиденциальности, используемых сайтом):

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

<INCLUDE> показывает все URI, которые будут использовать эту политику (в моем случае, весь сайт). Файл политики, который я экспортировал из Редактора, был загружен в http://example.com/w3c/example-com.p3p

Отправьте компактный заголовок с ответами

Я установил веб-сервер на example.com для отправки компактного заголовка с ответами, например:

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

policyref является относительным URI к файлу ссылки на политику (который, в свою очередь, ссылается на политики конфиденциальности), CP - это компактное представление политики. Обратите внимание, что комбинация заголовков P3P в этом примере может не применяться на вашем конкретном веб-сайте; ваши заголовки P3P ДОЛЖНЫ правильно представлять вашу собственную политику конфиденциальности!

Profit!

В этой конфигурации Evil Eye не появляется, файлы cookie сохраняются даже в IFRAME, и приложение работает.

Изменить: что НЕ делать, если вам не нравится защита от судебных процессов

Несколько человек предложили "просто пощекотать некоторые тэги в ваш заголовок P3P, пока не появится" Злой глаз ".

Теги - это не только куча бит, они имеют значения в реальном мире, и их использование дает вам реальный мир!

Например, делая вид, что вы никогда не собираете данные пользователя, может сделать браузер счастливым, но если вы действительно собираете данные пользователя, P3P противоречит действительности. Простой и простой, вы целенаправленно лжете своим пользователям, и это может быть преступным поведением в некоторых странах. Как и в случае, "отправляйтесь в тюрьму, не забирайте 200 долларов".

Несколько примеров (см. p3pwriter для полного набора тегов):

  • NOI: "Веб-сайт не собирает идентифицированные данные". (как только есть какая-либо настройка, логин или любая коллекция данных (***** Analytics, кто-нибудь?), вы должныподтвердите это в своем P3P)
  • STP. Информация сохраняется в соответствии с заявленной целью. Для этого требуется, чтобы информация была удалена в кратчайшие возможные сроки. Сайты должны иметь политику хранения, которая устанавливает таблицу времени уничтожения. Политика хранения должна ДОЛЖНА быть включена или связана с политикой конфиденциальности, доступной для человека. "(Поэтому, если вы отправляете STP, но не имеете политики хранения, вы можете совершать мошенничество. Как это здорово?.)

Я не юрист, но я не хочу обращаться в суд, чтобы узнать, действительно ли заголовок P3P является юридически обязательным, или если вы можете обещать своим пользователям что-либо, даже не желая почитать ваш promises.

Ответ 2

Я потратил большую часть своего времени на изучение этой вещи P3P, и я чувствую, что мне нужно поделиться тем, что я узнал.

Я заметил, что концепция P3P очень устарела и, по-видимому, действительно используется/используется Internet Explorer (IE).

Самое простое объяснение: IE хочет, чтобы вы определяли заголовок P3P, если вы используете файлы cookie.

Это хорошая идея, и, к счастью, большую часть времени, не предоставляя этот заголовок, не вызывает никаких проблем (читайте предупреждения браузера). Если ваш веб-сайт или веб-приложение загружается на другой веб-сайт, используя (i) Frame. Именно здесь IE становится огромной болью в ***. Это не позволит вам установить cookie, если не установлен заголовок P3P.

Зная это, я хотел найти ответ на следующие два вопроса:

  • Кому это нужно? Другими словами, могу ли я подать в суд, если я вложу слово "картофель" в заголовок?
  • Что делают другие компании?

Мои выводы:

  • Никто не заботится. Я не могу найти ни одного документа, который предполагает, что эта технология имеет юридический вес. Во время моих исследований я не нашел ни одной страны по всему миру, которая приняла закон, который мешает вам помещать слово "картофель" в заголовок P3P
  • Как Google, так и Facebook помещают ссылку в поле заголовка P3P, ссылаясь на страницу, описывающую, почему у них нет заголовка P3P.

Концепция родилась в 2002 году, и это меня озадачивает, что эта устаревшая и законно не реализованная концепция по-прежнему вынуждена создавать разработчики в IE. Если этот заголовок не имеет каких-либо правовых последствий, этот заголовок следует игнорировать (или, альтернативно, генерировать предупреждение или уведомление в консоли). Не соблюдается! Я теперь вынужден поставить строку в свой код (и отправить заголовок клиенту), который ничего не делает.

Вкратце - чтобы поддерживать IE счастливым - добавьте следующую строку к вашему PHP-коду (другие языки должны выглядеть похожими)

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

Проблема решена, и IE доволен этим картофелем.

Ответ 3

Мне удалось сглазить, просто добавив этот небольшой заголовок на сайт в IFrame (решение PHP):

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

Не забудьте нажать ctrl + F5, чтобы перезагрузить свой сайт или проводник может все еще показывать сглаз, несмотря на то, что он работает нормально. Вероятно, это основная причина, по которой у меня было так много проблем, чтобы заставить ее работать.

Файл политики вообще не нужен.

Изменить: Я нашел хорошую запись в блоге, которая объясняет проблему с куки в IFrames. Он также имеет быстрое исправление в коде С#: Фреймы, страницы ASPX и отклоненные файлы cookie

Ответ 4

Это похоронено в комментариях к другим ответам, но я почти пропустил это, так что кажется, что он заслуживает собственного ответа.

Чтобы просмотреть: для того, чтобы IE принимал сторонние куки файлы, вам нужно обслуживать ваши файлы с заголовком http под названием p3p в формате:

CP="my compact p3p policy"

НО, p3p в значительной степени мертв как стандарт на данный момент, и вы можете легко заставить IE работать, не инвестируя время и юридические ресурсы в создание реальной политики p3p. Это связано с тем, что если ваш компактный заголовок политики p3p недействителен, IE действительно рассматривает его как хорошую политику и принимает сторонние файлы cookie. Таким образом, вы можете использовать заголовок p3p, такой как

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

Вы можете дополнительно указать ссылку на страницу, которая объясняет, почему у вас нет политики p3p, как это делают Google и Facebook (они указывают здесь: https://support.google.com/accounts/answer/151657 и здесь: https://www.facebook.com/help/327993273962160/).

Наконец, важно отметить, что для всех файлов, обслуживаемых с стороннего сайта, должен быть заголовок p3p, а не только тот, который устанавливает cookie, поэтому вы не сможете просто сделать это на своем PHP, asp. net, etc. Вероятно, вам лучше настроить уровень веб-сервера (т.е. В IIS или Apache).

Ответ 5

У меня тоже была эта проблема, я подумал, что отправлю код, который я использовал в моем проекте MVC2. Будьте осторожны, когда в жизненном цикле страницы вы добавляете в заголовок, или вы получите HttpException " Сервер не может добавлять заголовок после отправки заголовков HTTP." Я использовал собственный ActionFilterAttribute в методе OnActionExecuting (вызывается до того, как действие выполнено).

/// <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 a machine-readable privacy policy that can be 
/// automatically fetched and viewed by users, and it can be tailored to fit your company 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);
    }
}

Пример использования:

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

        return View();
    }

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

Ответ 6

Это отличная тема в этой проблеме, однако я обнаружил, что одна важная деталь (которая была необходима по крайней мере в моем случае), которая не была размещена здесь или где-либо еще (я прошу прощения, если я просто пропустил это), было то, что P3P строка должна быть передана в заголовке файла КАЖДЫЙ, отправленного с стороннего сервера, даже файлов, не настроенных или использующих файлы cookie, такие как файлы или изображения Javascript. В противном случае файлы cookie будут заблокированы. У меня есть больше на этом в сообщении здесь: http://posheika.net/?p=110

Ответ 7

Любой, имеющий эту проблему в node.js.

Затем добавьте этот модуль p3p и включите этот модуль в промежуточное программное обеспечение.

npm install p3p

Я использую выражение, поэтому добавляю его в app.js

Сначала требуется, чтобы модуль в app.js

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

затем используйте его как промежуточное ПО

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

Он добавит заголовки p3p в res res. Нет необходимости делать какие-либо дополнительные вещи.

Вы получите дополнительную информацию по адресу:

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

Ответ 8

Если кто-то ищет линию Apache; мы использовали этот.

Набор заголовков P3P "CP = \" Благодаря IE8\""

На самом деле неважно, для чего мы установили значение CP, если есть заголовок P3P.

Ответ 9

Одна из возможных вещей - добавить домен в разрешенные сайты в инструментах → параметры Интернета → конфиденциальность → сайты: somedomain.com → allow → OK.

Ответ 10

Этот пост содержит некоторые комментарии к P3P и краткое решение, которое уменьшает проблемы с IE7 и IE8.

Ответ 11

Одно из решений, о котором я не упоминал здесь, использует хранилище сеансов вместо файлов cookie. Конечно, это может не соответствовать всем требованиям, но в некоторых случаях это легко исправить.

Ответ 13

Я реализовал полную политику P3P, но не хотел снова перебирать новый проект, над которым я работал. Я нашел эту ссылку полезной для простого решения проблемы, только имея в виду минимальную компактную политику P3P "CAO PSA OUR":

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

В статье цитируется (теперь не работает) ссылка на статью Microsoft kb. Политика сделала трюк для меня!

Ответ 14

Я изучал эту проблему в отношении входа в систему через Azure Access Control Services и не смог подключить голову и хвосты.

Затем наткнулся на этот пост https://blogs.msdn.microsoft.com/ieinternals/2011/03/10/beware-cookie-sharing-in-cross-zone-scenarios/

Вкратце, IE не передает файлы cookie через зоны (например, Интернет против доверенных сайтов).

Итак, если ваша цель IFrame и html-страница находятся в другой зоне, P3P ничего не поможет.

Ответ 15

Вы также можете комбинировать файлы p3p.xml и policy.xml как таковые:

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

Я нашел самый простой способ добавить заголовок - прокси через Apache и использовать mod_headers, как таковой:

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

Итак, мы проксируем все запросы, кроме тех, что указаны в /w 3c/p3p.xml, на наш сервер приложений.

Вы можете протестировать все это с помощью W3C validator

Ответ 16

Я знаю, что немного поздно внести свой вклад в эту тему, но я потерял столько часов, что, возможно, этот ответ поможет кому-то.

Я пытался вызвать сторонний cookie на моем сайте, и, конечно же, он не работал в Internet Explorer 10 даже на низком уровне безопасности... не спрашивайте меня, почему. В iframe я вызывал read_cookie.php(echo $_COOKIE) с помощью ajax.

И я не знаю, почему я был неспособен установить политику P3P для решения проблемы...

Во время моего поиска я увидел что-то о том, как работать с печеньем в JSON. Я даже не пытаюсь, потому что я думал, что если cookie не пройдет через iframe, он больше не пройдет через массив...

Угадайте, что, да! Итак, если вы json_encode ваш файл cookie, то декодируете после вашего запроса ajax, вы получите его!

Возможно, есть что-то, что я пропустил, и если да, все мои извинения, но я никогда не видел ничего такого глупого. Блокируйте сторонние файлы cookie для обеспечения безопасности, почему бы и нет, но пусть это пройдет, если закодировано? Где сейчас находится безопасность?

Я надеюсь, что этот пост поможет кому-то и еще, если я что-то пропустил, и я немой, пожалуйста, просветите меня!

Ответ 17

Если вы являетесь владельцем домена, который должен быть внедрен, вы могли бы, прежде чем вызывать страницу, которая включает IFrame, перенаправлять на этот домен, который будет создавать cookie и перенаправлять обратно, как описано здесь: http://www.mendoweb.be/blog/internet-explorer-safari-third-party-cookie-problem/

Это будет работать для Internet Explorer, но также и для Safari (поскольку Safari также блокирует сторонние файлы cookie).

Ответ 18

Это, наконец, сработало для меня (после большого количества хакеров и создания некоторых политик с использованием генератора политик IBM). Вы можете отключить генератор политики здесь: http://www.softpedia.com/get/Security/Security-Related/P3P-Policy-Editor.shtml

Мне больше не удалось загрузить генератор с официального сайта IBM.

Я создал эти файлы в корневой папке моего веб-приложения

/index.php
/w3c/policy.html (Human readable format)
/w3c/p3p.xml
/w3c/policy.p3p
  • Index.php: просто отправьте дополнительный заголовок:
header('P3P: policyref="/w3c/p3p.xml", CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"');
  1. Содержимое p3p.xml
<META>
    <POLICY-REFERENCES>
        <POLICY-REF about="/w3c/policy.p3p#App">
            <INCLUDE>/</INCLUDE>
            <COOKIE-INCLUDE/>
        </POLICY-REF>
    </POLICY-REFERENCES>
</META>
  1. Содержимое моего файла 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 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 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 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 compact policy against Microsoft 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>

Ответ 20

Для тех, кто пытается заставить P3P Compact Policy работать со статическим контентом:

Это возможно только, если вы можете отправлять настраиваемые заголовки ответов на стороне сервера со статическим содержимым.

Для более подробного объяснения см. мой ответ здесь: Установить код P3P в HTML

Ответ 22

Лучшим решением было бы сделать вызов Ajax внутри iframe на странице, которая будет получать/устанавливать файлы cookie...