15

私の会社には、ショッピング カートに接続する小さなウィジェットがあります。IE7 で Cookie の設定が機能しないという問題が発生しています。これは、iframe を介してサイトに埋め込まれているため、サード パーティであるために発生しています。

この問題を解決する方法は、P3P コンパクト ポリシーをヘッダーに配置することであるという投稿をいくつか見ました。述べたように:

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

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

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

私は完全に途方に暮れています。

4

7 に答える 7

15

これはおそらく他の誰にも役に立たないでしょうが、私はこれについて何週間も頭を壁にぶつけていました. IE 7 では、有効な P3P コンパクト ポリシーがあっても、Content-Type の HTML メタ タグに、ページ内の iframe を含むページで異なる文字セット宣言がある場合、サードパーティの Cookie の設定が許可されないことが判明しました。 iframe。

于 2009-11-21T01:08:36.240 に答える
5

私自身も以前に同様の問題を抱えていました。内のすべてのページにp3p ヘッダーを必ず追加してくださいiframe

于 2009-06-16T05:17:47.613 に答える
4

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

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

于 2010-11-29T17:49:22.283 に答える
3

Fiddler Webデバッガー(www.fiddler2.com)には、応答に「プライバシー」インスペクタータブがあり、P3Pトークンをその意味にデコードします。インスペクターの下部に、デフォルトで「許容可能」と見なされるポリシーを示すMSDNの記事を指すリンクがあります。

もちろん、P3Pポリシーは法的な宣言であるため、Cookieの使用がP3Pで主張するものと一致することを確認する必要があることに注意してください。

于 2009-06-26T04:55:11.657 に答える
3

304 リクエスト (キャッシュされたコンテンツ) で、上記の問題に遭遇しました。私たちのロード バランサーはセッション Cookie を設定していましたが、Apache Web サーバーには 304 の結果コードが返された要求の P3P ヘッダーが含まれていませんでした。そのため、セッション情報が台無しになります。

したがって、これはロード バランサーで注意すべきことです。パーシスタンス トラッキング用の Cookie を設定するときは、必ず P3P ヘッダーも生成して、常にタンデムで送信されるようにします。

于 2011-11-03T22:11:35.080 に答える
2

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

  1. まず、そのヘッダーをALLで渡すことを確認する必要があります。
  2. Visual Studio開発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でホストします。

2006年以降、W3Cが標準に対応していない、または標準を更新していないことを読んだときに、P3Pをバイパスすることにしました。プロジェクトは私のもので、私はクライアントでした。したがって、同じ行動を取ることを計画していて、自分のために何かを書いているのではない場合は、その力を確認してください。

乾杯!

于 2012-08-03T20:05:34.660 に答える
1

Cookieにはあるべきでありexpires=Fri, 19-Dec-14 18:00:40 GMT、ないはずmax-ageです。

これは、Apachemod_usertrackで構成によって制御されますCookieStyle=Netscape

于 2012-12-19T18:07:51.243 に答える