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




cookies privacy p3p (19)

У меня есть два веб-сайта, скажем, они 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: ASPKSJIUIUGF=JKHJUHVGFYTTYFY каждого сеанса (например, Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY ), но в запросе POST /process.asp нет заголовка Cookie совсем.

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

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


Answers

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

Чтобы проверить: для того, чтобы IE принимал сторонние файлы cookie, вам необходимо обслуживать ваши файлы с заголовком 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 и т. Д. код. Вероятно, вам лучше настроить уровень веб-сервера (например, в IIS или Apache).


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

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


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

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

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

/index.php
/w3c/policy.html (Human readable format)
/w3c/p3p.xml
/w3c/policy.p3p
  1. 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'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. Содержание политики.
<?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>

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

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

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

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

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

  1. Какая разница? Другими словами, могу ли я подать в суд, если я вложу слово «картофель» в заголовок?
  2. Что делают другие компании?

Мои выводы:

  1. Всем всеравно. Я не могу найти ни одного документа, который предполагает, что эта технология имеет юридический вес. Во время моих исследований я не нашел ни одной страны по всему миру, которая приняла закон, который мешает вам помещать слово «картофель» в заголовок P3P
  2. И Google, и Facebook помещают ссылку в поле заголовка P3P, ссылаясь на страницу, описывающую, почему у них нет заголовка P3P.

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

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

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

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


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

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

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


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

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

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


Я исследовал эту проблему в отношении входа в систему через 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 другой зоны, это ничего не поможет.



Вы также можете комбинировать файлы 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>

Таким образом, мы проксируем все запросы, кроме тех, что указаны в /w3c/p3p.xml, на наш сервер приложений.

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


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

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

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


У меня тоже была эта проблема, я подумал, что отправлю код, который я использовал в моем проекте 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'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);
    }
}

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

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

        return View();
    }

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

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


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


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

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

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

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

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


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


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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

Хорошей отправной точкой является учебник W3C . Я прошел через него, загрузил редактор политики конфиденциальности IBM и там я создал представление политики конфиденциальности и дал ему имя для ссылки на него (здесь это была 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 ДОЛЖНЫ честно представлять вашу собственную политику конфиденциальности!

Прибыль!

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

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

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

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

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

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

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

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


$.cookie("test", 1); //set cookie
$.cookie("test"); //get cookie
$.cookie('test', null); //delete cookie




internet-explorer cookies privacy p3p