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


392

私は2つのWebサイトを持っているexample.comとしましょうanotherexample.net。にanotherexample.net/page.html、私はIFRAME SRC="http://example.com/someform.asp"。そのIFRAMEは、ユーザーがフォームに入力して送信するフォームを表示しますhttp://example.com/process.aspsomeform.asp独自のブラウザウィンドウでフォーム( " ")を開くと、すべて正常に動作します。ただし、IE 6またはIE 7でIFRAMEとしてロードするsomeform.aspと、example.comのCookieが保存されません。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 +サーバーサイドスクリプトは明らかに問題を回避することができますが、それはバグに非常によく似ています。さらに、まったく新しいセキュリティホールのセットが開きます。簡単なので、アプリケーションでバグとセキュリティホールの組み合わせを使用したくありません。

編集:P3Pポリシーが根本的な原因でした。詳細については以下をご覧ください。


確かに良い解決策..プライバシーポリシーを作成してみました..コンテキストルートに追加しました...そして、jspページでヘッダーを設定しています...それでも、その赤い目を取り除くことができません。私はこの問題を解決する...
user902490


@ makerofthings7:YW。私はそれを非一時的な(sic!)サイトに移行し、Security.seの編集を提案します。そのページはややハックな概念実証でした。
Piskvorがビルを去った

2
Windows 10 / Internet Explorer 11(msdn.microsoft.com/en-us/library/…)でP3Pを実行しようとしないでください。P3Pはまったく機能しないため、何をしても、Cookieは保存されません。ここでの証拠としてもenhanceie.com/test/cookie
puco

回答:


429

うまくいきましたが、解決策は少し複雑なので、我慢してください。

何が起こっていますか

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

邪眼
(ソース:piskvor.org

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

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

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

それを解決する方法

p3pポリシーを作成する

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

:この時点で、実際にサイトにプライバシーポリシーがあるかどうかを確認し、そうでない場合は作成する必要があります。ユーザーデータを収集するかどうか、どのような種類のデータを扱うか、どのような目的でアクセスするか、誰がアクセスできるか、等あなたはこの情報を見つけ、それについて考える必要があります。いくつかのタグを一緒にたたくだけではカットされません。この手順は純粋にソフトウェアで行うことはできず、非常に政治的である可能性があります(「クリック統計を販売する必要があるか」など)。

(「このサイトは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のウェブサーバーを応答付きのコンパクトヘッダーを送信するように設定しました。

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にも保存され、アプリケーションは機能します。

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

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

タグはビットの集まりであるだけでなく、実際の意味を持ち、それらを使用すると実際の責任が与えられます。

たとえば、ユーザーデータを決して収集しないふりをすると、ブラウザは満足するかもしれませんが、実際にユーザーデータを収集する場合、P3Pは現実と矛盾しています。単純明快で、意図的にユーザー嘘をついています。これは、一部の国では犯罪行為である可能性があります。「刑務所に行く、200ドルを集めない」のように。

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

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

私は弁護士ではありませんが、P3Pヘッダーが本当に法的拘束力があるかどうか、または実際に約束を守ることを望まずにユーザーに何かを約束できるかどうかを確認するために裁判所に出向くつもりはありません。


私は95%完成しましたが、ヘッダーにはP3P:CP = "...."とだけ表示され、policyrefリンクが含まれていなかったため、IE7では機能しましたが、IE6では機能しませんでした。ありがとう!
AndreasKnudsen、2009年

4
IBMエディターへのリンクが機能しなくなりました。:ウェイバックマシン私はこの作業のリンクを見つけることができましたを通じてwww6.software.ibm.com/sdfdl/1v2/regs2/awadmin/p3peditor/Xa.2/...
ripper234

34
このトピックに関するいくつかのニュース:-IBMエディターは、softpedia.com / get / Security / Security -Related / …にあります。- P3P標準は「死んでいる」ようです。googleやfacebookなどの大企業は、無効なP3Pヘッダーを使用してIEのセキュリティをバイパスしています。これらの記事を参照してください。 cylab.cmu.edu/research/techreports/2010/tr_cylab10014.html zdnet.com/blog/facebook/... techpolicy.com/...
ダヴィデIcardi

7
同様の問題を持つ誰かを助けることができる別の情報:ドメインが異なるセキュリティゾーンにある場合のテストから(たとえば、ファーストパーティがインターネットであり、サードパーティがイントラネットである)、P3Pが正しくてもサードパーティのCookieを受け入れることはできません構成されています。Cookieは常にブロックされます。
Davide Icardi 2012

1
「サードパーティ」という用語は、思っているほど明確ではないことに注意してください。iframeに含まれるサイトに関連するサードパーティのコンテンツがあり、有効なプライバシーポリシーがあり、メインサイトからのiframe内のビューにリダイレクトされる場合、そのビューに有効なプライバシーポリシーがない限り、IEはそのクッキーを信頼します。そのビューがiframeを含むサイトと同じサイトからのものであっても。
運賃2013

168

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

P3Pの概念は非常に古く、実際にInternet Explorer(IE)でのみ使用/適用されているようです。

最も簡単な説明は次のとおりです。IEは、Cookieを使用している場合、P3Pヘッダーを定義することを求めています。

これは良いアイデアであり、幸いなことに、ほとんどの場合、このヘッダーを提供しなくても問題は発生しません(ブラウザーの警告を参照)。あなたのウェブサイト/ウェブアプリケーションが(i)フレームを使用して他のウェブサイトにロードされない限り。これは、IEが***で大きな問題になる場所です。P3Pヘッダーが設定されていない場合は、Cookieを設定できません。

これを知って、私は次の2つの質問に対する答えを見つけたかったのです。

  1. 誰も気にしない?つまり、ヘッダーに「ポテト」という言葉を入れても訴えられるのでしょうか。
  2. 他の会社は何をしますか?

私の発見は:

  1. 誰も気にしない。この技術が法的に重要であることを示唆する単一の文書を見つけることができません。調査中、P3Pヘッダーに「ポテト」という単語を挿入することを禁止する法律を採用している国は世界中で見つかりませんでした
  2. GoogleとFacebookはどちらも、P3Pヘッダーがない理由を説明するページを参照するリンクをP3Pヘッダーフィールドに配置しています。

この概念は2002年に生まれたものであり、この古くて法的に実装されていない概念がIE内の開発者に依然として強いられていることは私を困惑させます。このヘッダーに正当な影響がない場合、このヘッダーは無視する必要があります(または、コンソールで警告または通知を生成します)。強制されていません!絶対に何もしない行をコードに追加する(そしてクライアントにヘッダーを送信する)ように強制されました。

つまり、IEを満足させるために、次の行をPHPコードに追加します(他の言語も同様に見えるはずです)。

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

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


6
実際、この問題は、これが投稿された2008年以降、大きく変化しています。Webは進み、P3Pに関するコンセンサスは「もう誰も気にしない」に落ち着きました。この場合、IEが無効な入力で何をするかを知るのは良いことです。
Piskvorは2013

19
ああ、これは隠されたInternet Explorerの宝石の1つです!HttpContext.Current.Response.AddHeader( "p3p"、 "CP = \" Internet Explorer Was Programmed By Idiots \ ""); それは私のために働きます!
Michiel Cornille 2013年

6
@Mvision開発者のせいにしないでください、これはむしろ弁護士と経営者に関連する問題ですか?私はほとんどの開発者がこの機能がPotatoのようなソリューションをもたらすことを理解していたと思います:-)
KajMagnus

5
ASP.Netの場合は、これをWeb構成に追加できます。サードパーティのCookieを設定する " /> </ customHeaders> </ httpProtocol> </ handlers> </system.webServer> '
Rick Kierner '19

1
これはもっと高くする必要があります!IE 11 iframeでCookieを機能させるために何時間も費やしました。あらゆる種類のP3Pの組み合わせを試し、Cookieの種類/有効期限に応じてさまざまな結果を取得します。最後Potatoに私のP3P を入れて解決しました。はは!
dtbaker 2014年

55

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

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

ctrl + F5を押してサイトをリロードすることを忘れないでください。そうしないと、正常に機能しているにもかかわらず、Explorerが邪悪な目を表示することがあります。これがおそらく、動作させるのに非常に多くの問題があった主な理由です。

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

編集:IFrameのCookieに関する問題を説明する素晴らしいブログエントリを見つけました。また、C#コードにクイックフィックスが含まれています: フレーム、ASPXページ、拒否されたCookie


10
IANAL、しかしP3Pポリシーは法的に拘束力があるようです。ここでユーザーに約束しいることを知っていますか、またはEvilEyeが消えるまでタグを混ぜただけですか?ブラウザのキャッシュがこれらとのあなたの最大の問題になることはありませんI思う:「NOI:ウェブサイトが収集するデータを特定していません。 STP:情報が述べられた目的を満たすために保持されている。これは、できるだけ早い時点で破棄される情報を必要とするサイトでなければなりません。。破壊時間表を確立する保持ポリシーがあります。保持ポリシーは、サイトの人間が読めるプライバシーポリシーに含まれるか、リンクされる必要があります。」
Piskvorは

28
私はそれが何を意味するのか本当に気にしないことを認めなければなりません、私はエクスプローラーで動作するためのものが必要でした。サイトは私たち自身の非公開サイトであり、そのうちの1つはCookieを使用して、どのスタイルでサイトを表示するかを「記憶」しています。したがって、はい、邪眼が消えるまでタグを混ぜました。
Helo

ここで問題を説明する素晴らしいブログエントリを見つけました:aspnetresources.com/blog/frames_webforms_and_rejected_cookies
Helo

6
P3Pの関連性の増加。cylab.cmu.edu/files/pdfs/tech_reports/CMUCyLab10014.pdf法的に拘束力がある場合は、これを証明することにより訴訟の優先権が生じます。それは非常に高い評価で見られ、私の競争相手の1人を除いてすべてがそもそも1つを投稿することさえ気にしています。彼らは、顧客がIE設定を[中]のままにできない場合、努力する価値がないことを理解する必要があります。1つのサイトで失われた売上高は、Cookieが機能しない場合、かなり高くなければなりません。カートがなければ、カートは死にます。
Fiasco Labs

3
この回答は、のようなダミーヘッダーの使用を提案していCP="This_is_not_a_privacy_policy"ます。そうすることは、法的拘束力が弱く見えるようです(たとえば、NOIやSTPなどについては何も言及されていないため)、IEを幸せにするようです:-)
KajMagnus 14年

21

これは他の回答のコメントに埋もれていますが、ほとんど見逃していたので、独自の回答に値するようです。

確認するには: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)で設定する方がよいでしょう。


20

私にもこの問題があり、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();
    }
}

14

これはこの問題に関する素晴らしいトピックですが、ここや他のどこにも投稿されていない重要な詳細(少なくとも私の場合は必須)が1つありました(見逃した場合は申し訳ありません)は、P3P行がサードパーティのサーバーから送信されたすべてのファイルのヘッダーで渡されます。JavaScriptファイルや画像などのCookieを設定していない、または使用していないファイルも含まれます。そうしないと、Cookieがブロックされます。詳細については、こちらの投稿をご覧ください。http//posheika.net/?p = 110


5

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

それはresオブジェクトにp3pヘッダーを追加します。特別なことをする必要はありません。

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

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


5

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

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

P3Pヘッダーがある限り、CPの値を何に設定するかは問題ではありませんでした。


4

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


23
はい、それがあなたのコンピュータで機能することだけを気にかけているなら。これをすべての訪問者に提案するのは完全に実用的ではありません。
Piskvorが建物を去る

3

この投稿では、P3Pに関するいくつかの解説と、IE7およびIE8の問題を軽減するショートカットソリューションを提供します。


1
記事を引用すると、「基本的には、「個人情報は収集されません」と表示されます」-幸運を祈ります。私が見てきたゼロ(収集していない、実際にそのポリシーで設定したトークンを満たすサイトをまったくデータを -サーバーのアクセスログ、誰?いなくても、匿名の統計データ、)。提供される他のポリシーも達成するのがかなり難しいです(あなたは何らかの種類のウェブ分析を持っていますか?Bam、あなたはあなたのP3Pポリシーを破っただけです)。したがって、この記事は「露骨に嘘をつくだけで、誰も気にしない」と要約できます。確かに、インターネット全体で最も役立つ記事
Piskvorが建物を去る

記事の別の部分を引用すると、「インターネットには、P3P、コンパクトポリシー、IE7の要件について、驚くほど無料の無料情報がほとんどありません。また、IE7は、Cookieがブロックされた理由など、有用なデバッグ出力をまったく提供しません。」これは完全に本当のようです!IE7 / 8が他のすべてのブラウザーとは異なる動作をする理由を発見するために私の一日のほとんどを費やして、私はこの投稿を見つけて非常にうれしかったです。P3Pは仕様が完全に廃止されており、ほとんどの人がそれを回避するだけであることに気づく時がきたのではないでしょうか。この投稿は、おそらくこのトピックで最も有用なものです。
Henrik AastedSørensen2011

「インターネット上に驚くほど良い無料の情報は驚くほど少ない」-それは2007年(それが書かれたとき)に当てはまるかもしれないが、現在インターネットには多くの情報があり、P3Pポリシーを構築するのに役立つ無料のツールもあるあなたの特定の状況。私はP3Pを擁護しているわけではありませんが、「それを台無しにしてください、それをやめさせてください」と言うことは、費用がかかる結果になる可能性があります(サイトについて非常に明確な主張をしているためです)。まだテストされていません(IIRC)。しかし、私はその訴訟の受領側になりたくありません。
Piskvorが建物を去る

1
@Piskvor-無料のP3Pツールを投稿してください。私が行こうとするものはすべて、リンクファームと偽の検索によって買い取られました。IBMは無料のツールを公開しました。P3Pのサポートは、2012
Fiasco Labs

2
:ここsoftpedia上のIBM alphaWorksののP3Pエディタ見つかりsoftpedia.com/get/Security/Security-Related/...
フィアスコ研究所

3

ここで言及していないソリューションの1つは、Cookieの代わりにセッションストレージを使用することです。もちろん、これはすべての人の要件に適合するとは限りませんが、場合によっては簡単な修正です。


1
いい視点ね。この質問が投稿された時点では、セッションストレージのサポートは、特にIEでは存在していませんでした。しかし、時代は変わりつつあります;)
Piskvorは、

3

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は何の助けにもなりません。


これが2016年にも関連していることに驚いています:)
Piskvorが建物を去った

1
IEでのP3Pのステータスはここに文書化されている:msdn.microsoft.com/en-us/library/mt146424(v=vs.85).aspx、将来のルックスの明るい:)
フローデ・ニルセン


2

私は以前に完全なP3Pポリシーを実装しましたが、私が取り組んでいた新しいプロジェクトのために再び面倒を経験したくありませんでした。このリンクは、問題の簡単な解決策として役立ちます。「CAO PSA OUR」という最小限のコンパクトなP3Pポリシーを指定するだけで済みます。

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

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


1

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バリデーターですべてテストできます


これは304リクエストでヘッダーを送信しますか?IEのバージョンによっては、実際に削除クッキーは、あなたは304でP3Pヘッダを送信する場合
ジョシュア

申し訳ありませんが、このコードに取り組んでいないのでわかりません。そのA問題ならば、あなたはおそらく200にはApacheにステータスコードを強制することができます
クリス

1

埋め込みが必要なドメインを所有している場合は、IFrameを含むページを呼び出す前に、そのドメインにリダイレクトすることができます。これにより、Cookieが作成され、リダイレクトされます。http://www.mendoweb。 be / blog / internet-explorer-safari-third-party-cookie-problem /

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


1

このテーマに私の貢献を置くのは少し遅いことはわかっていますが、私は何時間も失ったので、この答えが誰かを助けるかもしれません。

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

また、問題を解決するためにP3Pポリシーを設定できなかった理由がわかりません...

検索中に、JSONのCookieを機能させることについて何かを見ました。クッキーがiframeを通過しないと、配列を通過しないと思ったので、私は試しません。

何だと思いますか?したがって、Cookieをjson_encodeし、ajaxリクエストの後にデコードすると、取得されます。

たぶん私は逃したものがあるかもしれません、そして私がそうした場合、私の謝罪はすべてですが、私はそんなに愚かなものを見たことはありません。セキュリティ上の理由からサードパーティのCookieをブロックしますが、暗号化しない場合は通過させますか?セキュリティは今どこにありますか?

この投稿が誰かに役立つことを願っています。何かを逃して、私がばかげている場合は、教えてください!


興味深い...だからあなたはJSでクッキーをデコードしていますか?
Piskvorが

いいえ、私はphp関数json_encode()を使用してJSON配列にcookieを書き込み、ajax JSON呼び出しを介して取得しています。
pierreaurelemartin 2012

1

これはようやく機能しました(多くの手間がかかり、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:info@YOURMAIL.de">
info@YOURMAIL.eu</a>. 
You may call us at TELEPHONENUMBER.
<!-- "Privacy Seals" section of privacy policy -->
<h2>Dispute Resolution and Privacy Seals</h2>
<p>We have the following privacy seals and/or dispute resolution mechanisms.
If you think we have not followed our privacy policy in some way, they can help you resolve your concern.
<ul>
<li>
<b>Dispute</b>:
Contact us for further information
</ul>
<!-- "Additional information" section of privacy policy -->
<h2>Additional Information</h2>
<p>
This policy is valid for 1 day from the time that it is loaded by a client.
</p>
<!-- "Data Collection" section of privacy policy -->
<h2>Data Collection</h2>
<p>P3P policies declare the data they collect in groups (also referred to as "statements").
This policy contains 1 data group.
<hr width="50%" align="center">
<h3>Group "App control data"</h3>
<p>We collect the following information:
<ul>
<li>HTTP cookies</li>
</ul>
<p>This data will be used for the following purposes:</p>
<ul>
<li>Completion and support of the current activity.</li>
<li>Web site and system administration.</li>
<li>Research and development.</li>
<li>Historical preservation.</li>
<li>Other purposes<p>Control Flow of the application</p></li>
</ul>
<p>This data will be used by ourselves and our agents.
<p>The data in this group has been marked as non-identifiable. This means that there is no
reasonable way for the site to identify the individual person this data was collected from.
<p>The following explanation is provided for why this data is collected:</p>
<blockquote>This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</blockquote>
<!-- "Use of Cookies" section of privacy policy -->
<hr width="50%" align="center">
<h2>Cookies</h2>
<p>Cookies are a technology which can be used to provide you with tailored information from a Web site. A cookie is an element of data that a Web site can send to your browser, which may then store it on your system. You can set your browser to notify you when you receive a cookie, giving you the chance to decide whether to accept it.
<p>Our site makes use of cookies.
Cookies are used for the following purposes:
<ul>
<li>Site administration
<li>Completing the user's current activity
<li>Research and development
<li>Other
(Control Flow of the application)
</ul>
<!-- "Compact Policy Explanation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Compact Policy Summary</h2>
<p>The compact policy which corresponds to this policy is:
<pre>
    CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV"
</pre>
<p>The following table explains the meaning of each field in the compact policy.
<center><table width="80%" border="1" cols="2">
<tr><td align="center" valign="top" width="20%"><b>Field</b></td><td align="center" valign="top" width="80%"><b>Meaning</b></td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CP=</tt></td>
<td align="left" valign="top" width="80%">This is the compact policy header; it indicates that what follows is a P3P compact policy.</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ALL</tt></td>
<td align="left" valign="top" width="80%">
Access to all collected information is available.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DSP</tt></td>
<td align="left" valign="top" width="80%">
The policy contains at least one dispute-resolution mechanism.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NID</tt></td>
<td align="left" valign="top" width="80%">
The information collected is not personally identifiable.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CURa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for completion of the current activity.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ADMa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for site administration.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DEVa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for research and development.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>HISa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for historical archival purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OTPa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for other purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OUR</tt></td>
<td align="left" valign="top" width="80%">
The data is given to ourselves and our agents.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NOR</tt></td>
<td align="left" valign="top" width="80%">
The data is not kept beyond the current transaction.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NAV</tt></td>
<td align="left" valign="top" width="80%">
Navigation and clickstream data is collected.
</td></tr>
</table></center>
<p>The compact policy is sent by the Web server along with the cookies it describes.
For more information, see the P3P deployment guide at <a href="http://www.w3.org/TR/p3pdeployment">http://www.w3.org/TR/p3pdeployment</a>.
<!-- "Policy Evaluation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Policy Evaluation</h2>
<p>Microsoft Internet Explorer 6 will evaluate this policy's compact policy whenever it is used with a cookie.
The actions IE will take depend on what privacy level the user has selected in their browser (Low, Medium, Medium High, or High; the default is Medium.
In addition, IE will examine whether the cookie's policy is considered satisfactory or unsatisfactory, whether the cookie is a session cookie or a persistent cookie, and whether the cookie is used in a first-party or third-party context.
This section will attempt to evaluate this policy's compact policy against Microsoft's stated behavior for IE6.
<p><b>Note:</b> this evaluation is currently experimental and should not be considered a substitute for testing with a real Web browser.
<p><b>Satisfactory policy</b>: this compact policy is considered <em>satisfactory</em> according to the rules defined by Internet Explorer 6.
IE6 will accept cookies accompanied by this policy under the High, Medium High, Medium, Low, and Accept All Cookies settings.
</body></html>

  1. 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">info@YOURMAIL.eu</DATA>
<DATA ref="#business.contact-info.online.uri">YOURWEBSITE</DATA>
<DATA ref="#business.contact-info.telecom.telephone.number">YOURPHONENUMBER</DATA>
<DATA ref="#business.contact-info.postal.organization">FIRSTNAME LASTNAME</DATA>
<DATA ref="#business.contact-info.postal.street">STREET</DATA>
<DATA ref="#business.contact-info.postal.city">CITY</DATA>
<DATA ref="#business.contact-info.postal.stateprov">STAGE</DATA>
<DATA ref="#business.contact-info.postal.postalcode">POSTALCODE</DATA>
<DATA ref="#business.contact-info.postal.country">Germany</DATA>
    </DATA-GROUP>
    </ENTITY>

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


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

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

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

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

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

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

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

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

<!-- End of policy -->
</POLICY>
</POLICIES>

親ウィンドウサーバーディレクトリまたはiframeサーバーディレクトリに移動しますか?
JackTheKnife 2016


0

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

それは唯一のあなたは、静的なコンテンツとカスタムサーバーサイドのレスポンスヘッダを送信することができれば可能。

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



-1

より良い解決策は、クッキーを取得/設定するページに対してiframe内でAjax呼び出しを行うことです...


1
:AJAXは、ここでは助けにはなりませんどんな関係なく、あなたのしている設定のクッキーかのAJAX呼び出しで文書-のiframe内で取り扱いクッキーが少ない(「サードパーティのCookie」)、信頼、およびIEでのプライバシーポリシーフィルタを通過する必要があります.cookie操作または通常のページ(テスト済み)。
Piskvorが建物を去る

いいえ、HTTPで(iframe内に)Cookieを設定するajax呼び出しを行っている場合、Ie6はセキュリティポリシーをバイパスしてCookieを設定します。反対票を投じる前に私の解決策が間違っていることを確認してください。
Luca Matteis、

newmoon.wz.cz/test/page.phpを参照してください。AJAXを介してCookieを設定できますが、a)新しいセッションを開始するか、b)JSからセッションIDを設定します- 巨大なセキュリティホール(XSRF)。間違っています、申し訳ありません。しかし、あなたの解決策は以前よりも間違っているように見えます。セキュリティホールを作ることは私には悪いようです。
Piskvorが建物を去る

(「セキュリティポリシーを回避する」ことは、少なくとも私にはバグのように見えます。ポリシーがある場合、それは何らかの理由で存在します。「セキュリティポリシー/ユーザー設定をねじ込むと、私たちがよくわかる」と言うのは危険ですべりやすい傾斜です。また、 、機能を(まだ)未修正の既知のバグに依存させますか?)
Piskvorが建物を去った

新しいセッションを設定しますか?あなたは何について話していますか?ほとんどのブラウザーは、p3pヘッダーを使用せずにこれをサポートしているので、Ajaxを使用した場合の違いがわかりません...
Luca Matteis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.