うまくいきましたが、解決策は少し複雑なので、我慢してください。
何が起こっていますか
そのままでは、Internet Explorer は IFRAME ページに低いレベルの信頼を与えます (IE はこれを「サードパーティ」コンテンツと呼びます)。IFRAME 内のページにプライバシー ポリシーがない場合、その Cookie はブロックされます (これはステータス バーの目のアイコンで示されます。クリックすると、ブロックされた URL のリストが表示されます)。
(出典:piskvor.org)
この場合、Cookie がブロックされると、セッション ID は送信されず、ターゲット スクリプトは「セッションが見つかりません」というエラーをスローします。
(セッション識別子をフォームに設定し、POST 変数から読み込もうとしました。これはうまくいきましたが、政治的な理由でできませんでした。)
IFRAME 内のページをより信頼できるものにすることができます。内部ページが IE で受け入れられるプライバシー ポリシーを含む P3P ヘッダーを送信すると、Cookie が受け入れられます。
解決方法
p3p ポリシーを作成する
出発点としては、W3C チュートリアルが適しています。私はそれを調べて、IBM Privacy Policy Editorをダウンロードし、そこでプライバシー ポリシーの表現を作成し、それを参照するための名前を付けました (ここでは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 で 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 ヘッダーは、自分のプライバシー ポリシーを正確に表さなければなりません!
利益!
この構成では、イービルアイは表示されず、Cookie は IFRAME にも保存され、アプリケーションは動作します。
編集:訴訟から身を守るのが好きでない限り、してはいけないこと
何人かの人々は、「邪眼があきらめるまで、いくつかのタグを P3P ヘッダーに平手打ちする」ことを提案しました。
タグはビットの集まりであるだけでなく、現実世界の意味を持ち、それらを使用すると現実世界の責任が与えられます!
たとえば、ユーザー データをまったく収集しないふりをすると、ブラウザーは喜ぶかもしれませんが、実際にユーザー データを収集する場合、P3P は現実と矛盾します。単純明快なことですが、あなたは故意にユーザーに嘘をついています。これは一部の国では犯罪行為となる可能性があります。「刑務所に行って、200 ドルを集めないでください」のように。
いくつかの例 (タグの完全なセットについては p3pwriter を参照してください):
- NOI : 「Web サイトは特定されたデータを収集しません。」(カスタマイズ、ログイン、またはデータ収集 (***** 分析、誰か?) があるとすぐに、P3P でそれを承認する必要があります)
- STP : 記載された目的を達成するために情報が保持されます。そのためには、可能な限り早い時期に情報を破棄する必要があります。サイトには、破棄のタイム テーブルを確立する保存ポリシーが必要です。保持ポリシーは、サイトの人が読めるプライバシー ポリシーに含まれているか、そこからリンクされている必要が
STP
あります。」
私は弁護士ではありませんが、P3P ヘッダーが本当に法的拘束力を持っているかどうか、または実際に約束を尊重することなくユーザーに何かを約束できるかどうかを確認するために法廷に行くつもりはありません。