2009-06-16 7 views
14

私の会社はショッピングカートに差し込む小さなウィジェットを持っています。私たちは、IE7でクッキーを設定することができないという問題にぶち当たっています。これは、私たちがiframeを介してサイトに埋め込まれているため、第三者であるために起こります。IE、P3P、IFrame、ブロックされたクッキー(ページのホストページに個人情報が要求されるまで動作します)

この問題を解決する方法は、P3Pコンパクトポリシーをヘッダーに入れることです。前述のように:

Cookie blocked/not saved in IFRAME in Internet Explorer

私はP3Pポリシーが私のHTTPヘッダであることを確認しました。ショッピングカートサイトの最初のページ/ステップで実際に動作しますが、ページに個人情報(名前、住所、電話番号など)があるとすぐに、IEは自分のサイトとCookieをブロックします。

私はいくつかの異なるP3Pポリシーを試しましたが、それらはすべて同じ場所では機能しません。 IBM P3Pツールを使用して独自の特別なP3Pポリシーを生成しましたが、それでも機能しません。

私は完全に迷っています。

答えて

5

私はいつか前に自分自身で同様の問題を抱えていました。 にすべてのページにp3pヘッダーを追加してください。iframeのページを確認してください。

+1

によってcontrolled in Apache mod_usertrackでは、ヒントをいただき、ありがとうございます。私は、p3pヘッダーが私が提供しているすべてのコンテンツのために存在することを確認しました。 (私はieHTTPHeadersを使用しました) –

+0

Ok .. ieのプライバシー設定を変更し、低いセキュリティでテストしてください。それが動作する場合、問題はあなたのソースコードにあります。 WebセキュリティツールバーでFFを使用することもできます。プライバシー設定を変更し、Web開発ツールバーを使用してクッキーの状況を確認します。 – Shoban

+0

Shobab、ヒントのおかげで。 IEでのセキュリティを低下させ、サイトのCookieステータスを「ブロック済み」から「制限付き」に変更しました。このDIDは私の仕事です。制限付きで十分です。 ソースコードで何が問題になるのかわかりません - おそらく私のp3pポリシーが十分ではありませんか? FF Webセキュリティツールバーはどこにありますか?なぜ私のp3pポリシーが十分でないのかを知ることができれば嬉しいです。 –

3

Fiddler Webデバッガ(www.fiddler2.com)には、P3Pトークンをその意味にデコードするレスポンスの「プライバシー」インスペクタタブがあります。インスペクタの一番下には、既定でどのポリシーが「受け入れられる」とみなされるかを示すMSDNの記事を示すリンクがあります。

もちろん、P3Pポリシーは法的な宣言であるため、Cookieの使用がP3Pで主張するものと一致することを確認する必要があります。

+0

Fiddlerの下部にあるリンクから、このページに移動します。このページには、IE6の許容ポリシーのみが記載されています。http://msdn.microsoft.com/en-us/ library/ms537343(VS.85).aspx#unsatisfactory_cookies 最近のリファレンスを知っている人はいますか? –

+0

IE6以降、P3Pのデフォルト値は変更されていません。 – EricLaw

+0

@EricLaw:あなたのことは古くからの答えですが、プライバシーの検査官のタブはFiddlerから削除されましたか?私はFiddler 4(まだFiddler2 - v4.4.2.1ベータとラベルが付けられています)を実行しています。どこにも表示されません。(以前のバージョンでは見たこともありません) –

14

これはおそらく他の人には役に立たないでしょうが、私は数週間にわたって壁に頭を向けていました。 Content-TypeのHTMLメタタグが、ページ内のiframeと異なる文字セット宣言をページ内に持つ場合、有効なP3Pコンパクトポリシーでも、サードパーティのCookieを設定することはできませんiframe

+2

それは私に数分間の希望を与えました。 :D –

4

非常に暗いInternet Explorer 7のバグがあります。iframe内の304( "Not Modified")リクエストでは、P3PヘッダーはRFCに従ってWebサーバーから送信されませんそのようなことを気にしないIISを使用して)。 IE7は実際にその特定の要求中に設定されたクッキーを削除します。

これはあなたが上で説明したように効果がありますので、それはおそらく起こっていることです。 IE6 & IE8(および他のすべてのブラウザ)は期待どおりに動作します。

+2

IE8にも影響するようです。 –

3

304件のリクエスト(キャッシュされたコンテンツ)で、上記の問題が発生しました。私たちのロード・バランサはセッション・クッキーを設定していましたが、Apache Webサーバーは304結果コードを要求するP3Pヘッダーを含めませんでした。だから、セッション情報が乱れてしまう。

これは、ロードバランサで認識されるべきことです。パーシスタンストラッキングのためにクッキーを設定するときは、必ずP3Pヘッダを生成して、それらを常にタンデムで送信するようにしてください。

2

私は同じ問題を抱えており、Google/Facebookアプローチを採用し、P3Pヘッダーを偽造することに決めました。私はいくつかの問題を抱えてしまった。

  1. まず、そのヘッダーをALLで渡す必要があります。
  2. Visual Studio Development Webサーバーを使用している場合、P3Pヘッダーは何らかの理由で無視されます。したがって、IISであなたのアプリケーションをホストしてください。

問題1:

あなたの要求されたアクションのすべてでそのヘッダを返すためには、当然のニーズに合わせたカスタマイズ、あなたのGlobal.asaxにこれを追加します。

protected void Application_BeginRequest(Object sender, EventArgs e) { 
      // 
      HttpContext.Current.Response.AddHeader("P3P", "CP=\"This is not a P3P policy! See http://mydomain.com/privacy-policy for more info.\""); 
     } 

問題2:

かなり自明です。 IISでプロジェクトをホストします。

私は、W3Cが2006年以来標準に取り組んでいない、または標準を更新していないことを読んだとき、私はP3Pをバイパスすることを決めました。それは死んでいるということです。プロジェクトは私のもので、私はクライアントでした。だから、あなたが同じ行動をとることを計画していて、あなた自身のために何かを書いていないのであれば、その力で確認してください。

乾杯!

1

クッキーはexpires=Fri, 19-Dec-14 18:00:40 GMTで、max-ageではありません。

これはコンフィグCookieStyle=Netscape

関連する問題