web-dev-qa-db-ja.com

ブロックされた/ Internet ExplorerのIFRAMEに保存されていないCookie

私は2つのウェブサイトを持っています、それらがexample.comanotherexample.netだとしましょう。 anotherexample.net/page.htmlにはIFRAME SRC="http://example.com/someform.asp"があります。そのIFRAMEは、ユーザーが記入してhttp://example.com/process.aspに送信するためのフォームを表示します。自分のブラウザウィンドウでフォーム( "someform.asp")を開くと、すべてうまくいきます。ただし、IE 6またはIE 7にIFRAMEとしてsomeform.aspをロードすると、example.comのCookieは保存されませんFirefoxでは、この問題は発生しません。

テストの目的で、私は http://newmoon.wz.cz/test/page.php に同様の設定を作成しました。

example.comはクッキーベースのセッションを使います(そして私ができることは何もありません)、クッキーがなければprocess.aspは実行されません。 IEにこれらのCookieを強制的に保存させるにはどうすればよいですか?

HTTPトラフィックを傍受した結果:GET /someform.asp応答には、セッションごとの有効なSet-Cookieヘッダー(例:Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY)がありますが、POST /process.asp要求にはCookieヘッダーはありません。まったく.

Edit3:いくつかのAJAX +サーバーサイドスクリプティングは明らかに問題を回避することができますが、それはバグに非常に似ているように見えます、そしてそれは セキュリティホール の全く新しいセットを開きます。私のアプリケーションがバグ+セキュリティホールの組み合わせを使いたくないのは、それが簡単だからです。

編集:P3Pポリシーが根本的な原因であり、以下で詳しく説明しています。

389
Piskvor

動作するようになりましたが、解決策は少し複雑ですので、ご容赦ください。

何が起こっていますか

現状では、Internet ExplorerはIFRAMEページに低いレベルの信頼を与えます(IEはこの「サードパーティ」コンテンツと呼びます)。 IFRAME内のページにプライバシーポリシーがない場合、Cookieはブロックされます(ステータスバーの目のアイコンで示され、クリックするとブロックされたURLのリストが表示されます)。

the evil eye
(ソース: piskvor.org

この場合、Cookieがブロックされると、セッションIDは送信されず、ターゲットスクリプトは「セッションが見つかりません」エラーをスローします。

(セッション識別子をフォームに設定し、POST変数からロードしようとしました。これは機能していましたが、政治的理由でそれができませんでした。)

IFRAME内のページをより信頼性の高いものにすることができます:内部ページがIEに受け入れられるプライバシーポリシーを含むP3Pヘッダーを送信する場合、Cookieは受け入れられます

解決方法

P3pポリシーを作成する

適切な出発点は W3Cチュートリアル です。私はそれを試し、 IBM Privacy Policy Editor をダウンロードし、そこでプライバシーポリシーの表現を作成し、それを参照する名前を付けました(ここではpolicy1)。

NOTE:この時点で、実際にサイトにプライバシーポリシーがあるかどうかを確認し、ない場合は作成する-収集するかどうかユーザーデータ、どんな種類のデータ、それで何をするのか、誰がそれにアクセスするのか、などです。この情報とthinkを見つける必要があります。 数個のタグを一緒に叩くだけではカットされません。このステップはソフトウェアだけで行うことはできず、非常に政治的かもしれません(例えば、統計情報をクリックしますか?」)。

(たとえば、「サイトはACME Ltd.によって運営され、その操作に匿名のセッションごとの識別子を使用し、明示的に許可されている場合にのみユーザーデータを収集し、以下の目的のためにのみ、データは必要な場合にのみ保存され、当社のみなどにアクセスできます」など)。

(このツールを使用して編集する場合、ポリシーのエラー/省略を表示することができます。また、[HTMLポリシー]タブが非常に便利です。下部に[ポリシー評価]があります。 IEのデフォルト設定による)

エディターは、上記のポリシーのXML表現である.p3pファイルにエクスポートします。また、このポリシーの「コンパクトバージョン」をエクスポートできます。

ポリシーへのリンク

次に、ポリシー参照ファイル(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でWebサーバーを設定して、次のように応答付きのコンパクトヘッダーを送信します。

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ヘッダーの組み合わせは、特定のWebサイトに適用できない場合があることに注意してください。あなたのP3Pヘッダーはあなた自身のプライバシーポリシーを忠実に表現しなければなりません!

利益!

この構成では、Evil Eyeは表示されず、CookieはIFRAMEにも保存され、アプリケーションは機能します。

編集:訴訟から守ることが好きでない限り、してはいけないこと

何人かの人々は、「悪の目がgivesめるまで、P3Pヘッダーにいくつかのタグをたたくだけ」と提案しています。

タグはビットの束であるだけでなく、現実世界の意味を持ち、その使用はあなたに現実世界責任

たとえば、ユーザーデータを収集しないふりをすると、ブラウザは幸せになりますが、実際にユーザーデータを収集すると、P3Pは現実と矛盾します。単純明快、あなたは意図的にユーザーに嘘をついています、そしてそれはいくつかの国では犯罪行為かもしれません。たとえば、「刑務所に行き、200ドルを集めないでください」。

いくつかの例( タグの完全なセットについてはp3pwriterを参照 ):

  • NOI:「Webサイトは識別されたデータを収集しません。」 (カスタマイズ、ログイン、またはデータ収集(***** Analytics、誰でも)があるとすぐに、mustあなたのP3P)
  • STP:指定された目的を満たすために情報が保持されます。これには、可能な限り早い時期に情報を破棄する必要があります。サイトには、破棄タイムテーブルを確立する保持ポリシーが必要です。保存ポリシーは、サイトの人間が読めるプライバシーポリシーに含めるか、リンクする必要があります。 "(したがって、STPを送信したが、保存ポリシーがない場合は、may詐欺を犯しています。それはいかがですか?まったく違います。)

私は弁護士ではありませんが、P3Pヘッダーがreally法的拘束力があるかどうか、または実際に意思のないユーザーに何かを約束できるかどうか、裁判所に行くつもりはありません。あなたの約束を守るために。

427
Piskvor

私はこのP3Pのことを調べるのに1日の大部分を費やしています、そして私は私が見つけたものを共有する必要性を感じます。

私は、P3Pの概念が非常に時代遅れであり、Internet Explorer(IE)によって実際に使用され/強制されているようにしか見えないことに気付きました。

最も簡単な説明は:IEあなたがクッキーを使っているなら、P3Pヘッダを定義してほしい。

これはいい考えです、そして幸運にもこのヘッダを提供しないことはほとんど問題を起こさないでしょう(ブラウザの警告を読んでください)。あなたのウェブサイト/ウェブアプリケーションが(i)フレームを使って他のウェブサイトにロードされていない限り。これが、IEが***の大きな痛みになるところです。 P3Pヘッダが設定されていない限り、クッキーを設定することはできません。

これを知って、私は次の2つの質問に対する答えを見つけたいと思いました:

  1. 誰も気にしない?言い換えれば、「Potato」という単語をヘッダーに入れると訴えられるのでしょうか。
  2. 他の会社は何をしますか?

私の調査結果は以下のとおりです。

  1. 誰も気にしません。この技術に法的な重要性があることを示唆する単一の文書を見つけることができません。私の研究の間、私はあなたがP3Pヘッダーに単語 "Potato"を入れるのを防ぐ法律を採用した世界の単一の国を見つけませんでした
  2. グーグルとフェイスブックの両者は、なぜ彼らがP3Pヘッダを持たないのかを説明するページを参照してそれらのP3Pヘッダフィールドにリンクを置いた。

この概念は2002年に誕生し、この古くて法的に未実装の概念が依然としてIE内の開発者に強いられていることを私は困惑させています。このヘッダに法的な影響がない場合は、このヘッダを無視する必要があります(または、コンソールに警告または通知を生成します)。強制されない私は今、私のコードに1行を入れること(そしてクライアントにヘッダーを送ること)を余儀なくさせています。

手短に言うとIEを幸せに保つために、PHPコードに次の行を追加してください(他の言語も似ているはずです)

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

問題が解決し、IEさんがこのポテトに満足しています。

165
Ruben

IFrame(PHPソリューション)のサイトにこの小さなヘッダーを追加するだけで、邪悪な目を消すことができました。

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

あなたのサイトをリロードするためにctrl + F5を押すのを忘れないでください。これがおそらく私がそれを機能させるのに非常に多くの問題を抱えていた主な理由です。

ポリシーファイルはまったく必要ありませんでした。

編集:私はIFramesのクッキーに関する問題を説明するNiceブログエントリを見つけました。それはまたC#コードのクイックフィックスを持っています: フレーム、ASPXページと拒否されたクッキー

55
Helo

これは他の答えのコメントに埋め込まれていますが、私はほとんどそれを逃したので、それはそれ自身の答えに値するようです。

確認するには:IEがサードパーティのCookieを受け入れるには、ファイルにp3pというhttpヘッダーを次の形式で指定する必要があります。

CP="my compact p3p policy"

しかし、現時点では、p3pは標準としてはほとんど機能していないので、実際のp3pポリシーを作成するための時間と法律上のリソースを費やすことなくIEを簡単に機能させることができます。これは、コンパクトなp3pポリシーヘッダーが無効な場合、IEが実際にそれを適切なポリシーとして扱い、サードパーティのCookieを受け入れるためです。だからあなたはこのようなp3pヘッダを使うことができます

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

GoogleやFacebookのように、なぜあなたがp3pポリシーを持っていないのかを説明するページへのリンクを含めることができます(彼らはここに指摘します: https://support.google.com/accounts/answer/151657 とここ: https://www.facebook.com/help/327993273962160/ )。

最後に、サードパーティのサイトから提供されるすべてのファイルには、Cookieを設定するものだけでなく、p3pヘッダーが必要であることに注意することが重要です。そのため、PHP、asp.netなどでこれを実行できない場合があります。コード。あなたはおそらくWebサーバーレベルで(すなわちIISまたはApacheで)始めるほうがよいでしょう。

21
David Hammond

私もこの問題を抱えていました。MVC2プロジェクトで使用したコードを投稿したいと思いました。ページのライフサイクル中にヘッダーに追加したり、HttpExceptionが発生したりする場合は注意してください。 "HTTPヘッダーが送信された後でサーバーはヘッダーを追加できません。 「 OnActionExecutingメソッドでカスタムActionFilterAttributeを使用しました(アクションが実行される前に呼び出されます)。

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

これはこの問題に関する素晴らしいトピックですが、ここにも他の場所にも掲載されていない重要な詳細の1つ(少なくとも私の場合は欠かせません)がJavascriptファイルや画像などのCookieを設定または使用していないファイルであっても、サードパーティのサーバーから送信されたEVERYファイルのヘッダーに渡されます。さもなければクッキーはブロックされます。私はここにポストでこれについての詳細を持っている: http://posheika.net/?p=11

14
Juris

誰かがApacheラインを探しているのなら、これを使いました。

ヘッダーセットP3P "CP = \" Thanks IE8\""

P3Pヘッダがある限り、CP値を何に設定してもかまいません。

5
so_mv

Node.jsでこの問題を抱えている人は誰でも.

それからこのp3pモジュールを追加し、ミドルウェアでこのモジュールを有効にします。

npm install p3p

私はexpressを使っているのでapp.jsにそれを追加します

最初にapp.jsでそのモジュールを必要とします

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

それからミドルウェアとしてそれを使用しなさい

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

Resオブジェクトにp3pヘッダを追加します。余分なことをする必要はありません。

あなたはより多くの情報を得るでしょう:

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

5
Harshal_m_joshi

1つの可能なことはツールで許可されたサイトにドメインを追加することです - >インターネットオプション - >プライバシー - > sites:somedomain.com - >許可 - > OK。

3
heikkim

この記事 は、P3Pに関する解説と、IE7とIE8の問題を軽減するショートカットの解決策を提供します。

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にあるなら、それで何も助けにはならないでしょう。

3
Frode Nilsen

私がここで言及したことがない1つの解決策は、クッキーの代わりに セッションストレージ を使うことです。もちろん、これはすべての人の要件に合うとは限りませんが、場合によっては簡単な修正方法です。

3
ripper234

私は以前に完全なP3Pポリシーを実装しましたが、私が取り組んでいた新しいプロジェクトのために再び面倒を経験したくありませんでした。私はこのリンクが問題への簡単な解決のために有用であることを見つけました、「CAO PSA OUR」の最小のコンパクトなP3P方針を指定するだけでよい:

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

この記事は、マイクロソフトのkb記事へのリンク(現在は壊れている)を引用しています。ポリシーは私のためにトリックをしました!

2
Joel Mitchell

同様の問題を抱えた、また今朝P3Pポリシーを生成する方法を調査するために行って、ここであなた自身のポリシーを生成し、Webサイトで使用する方法についての私の投稿です:) http://everydayopenslikeaflower.blogspot.com/ 2009/08/how-to-p3p-policy-and-implements.html

2
Ping

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 validator で全てテストできます

1
Kris

私がこの主題に私の貢献を置くのは少し遅れていることを知っています、しかし私は多分この答えが誰かを助けるであろうように私はとても多くの時間を失いました。

私は自分のサイトで第三者のクッキーを呼び出そうとしていましたが、もちろんセキュリティレベルが低くてもInternet Explorer 10上では機能していませんでした…理由を聞かないでください。 iframeでは、私はajaxでread_cookie.php(echo $ _COOKIE)を呼び出していました。

そして、私はなぜ問題を解決するためにP3Pポリシーを設定することができなかったのかわかりません...

私の検索中に、私はJSONでクッキーを機能させることについて何か見ました。クッキーがiframeを通過しないのであれば、それは配列を通過しないと考えていたので、私も試していません...

何だと思います、それはします!それであなたがあなたのクッキーをjson_encodeしてからあなたのajaxリクエストの後にデコードするなら、あなたはそれを手に入れるでしょう!

たぶん私が逃した何かと私がしたならば、すべての私の謝罪がある、しかし私はそんなにばかなものを見たことがなかった。セキュリティのためにサードパーティのCookieをブロックしてください。セキュリティは今どこにありますか?

私はこの記事が誰かに役立つことを願っています、そして、もし私が何かを逃した、そして私が愚かであるならば、私を教育してください!

1

埋め込む必要があるドメインを所有している場合は、IFrameを含むページを呼び出す前に、そのドメインにリダイレクトします。ここで説明されているように、クッキーとリダイレクトバック: http://www.mendoweb.be/blog/internet-Explorer-safari-third-party-cookie-problem/

これはInternet ExplorerだけでなくSafariでも機能します(SafariもサードパーティのCookieをブロックするため)。

1
Matthew

これはようやく私のためになりました(IBMのポリシージェネレータを使用していくつかのポリシーを作成し、ポリシーを生成した後)。ここでポリシージェネレータをダウンロードすることができます。 http://www.softpedia.com/get/Security/Security-Related/P3P-Policy-Editor.shtml

私はこれ以上IBMの公式Webサイトからジェネレータをダウンロードすることができませんでした。

私は自分のWebアプリのルートフォルダにこれらのファイルを作成しました。

/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. Policy.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>
1

P3Pコンパクトポリシーを静的コンテンツで機能させようとしている人のために:

静的コンテンツとともにカスタムのサーバーサイドレスポンスヘッダーを送信できる場合は、のみが可能です。

より詳細な説明については、ここに私の答えを参照してください。 HTMLでP3Pコードを設定する

0
Sly_cardinal

Rails 3.2では私が使っています:

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  

私はこれから得た: http://dot-net-web-developer-bristol.blogspot.com/2012/04/setting-p3p-header-in-Rails-session.html

0
Aaron Mills

Railsでは、私はこの宝石を使用しています。 https://github.com/merchii/rack-iframe おかしなことに、参照ファイルなしで一連の略語を設定します。 : https://github.com/merchii/rack-iframe/blob/master/lib/rack/iframe.rb#L8

あなたがp3pのものの意味について全く気にしなくてもインストールするのは簡単です。

0
mojovski