うまくいきましたが、解決策は少し複雑なので、我慢してください。
何が起こっていますか
現状では、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ヘッダーが本当に法的拘束力があるかどうか、または実際に約束を守ることを望まずにユーザーに何かを約束できるかどうかを確認するために裁判所に出向くつもりはありません。