注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

古城风~~~

竹密无妨溪水过,天高不碍白云飞。这天下总有一份是属于我古城的天地!

 
 
 

日志

 
 

关于IE6 IFrame或Frame中读写cookie的问题分析  

2010-04-21 02:15:20|  分类: asp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关于IE6 IFrame或Frame中读写cookie的问题分析

一、起因

信通宝在客户网站上浮动窗口的实现是通过在客户的网站上加上一段链接脚本,脚本在客户网站上写入一IFrame,此Iframe中的内容src=""是指向信通宝网站,如src="www.xtb.com/script.js"。 信通宝的功能需求中有一项是要求记录用户访问此网站的次数的,这就要求必须在访客的电脑中保存cookie才能实现。但是在IE6中,Frame和 IFrame中无法按常规方法来读写cookies。因为IE6加入了以PlatformforPrivacyPreferences(P3P)为基础的 隐私保护功能,有关此功能的说明请参阅“微软公布IE6新增隐私保护功能的详情

文章出处:http://hi.baidu.com/wuchangx

email:wuchang@guet.edu.cn

IE6中的隐私保护设置:

在“工具”菜单下选择“Internet选项”。点击“隐私”标签。IE 6的缺省隐私等级设置为“中”——即“阻止没有合同隐私策略的第三方cookie;阻止使用个人可标识信息而没有您的隐含许可的第三方cookie;限制使用个人可标识信息而没有隐含许可的第一方cookie”。见下图:

 关于IE6 IFrame或Frame中读写cookie的问题分析 - 古城 -     ~~~古城风~~~

在ie6中Cookie被分成了first party cookie和third party cookie,即第一方Cookie和第三方Cookie,所谓的第三方Cookie是指在Frame或者Iframe中嵌套页面的Cookie。举例来 说,ABC公司购买了我们的信通宝产品,并在其公司网站www.abc.com上加上了信通宝的链接脚本(www.xtb.com/test.js),这个脚本在abc公司的网站上加上一个IFrame,此Iframe的内容为xtb.com上的某个页面如(www.xtb.com/List.aspx?cid=1234),而这个List.aspx页面需要在读写cookie以便记录访客的次数等信息。当访客在访问ABC公司的网站时,www.abc.com即为第一方站点,信通宝视为第三方站点,当List.aspx试图读写cookie时,IE6就会自动拦截(在状态栏下显示红色禁止图标),可以通过查看得到类似如下图的隐私报告:

关于IE6 IFrame或Frame中读写cookie的问题分析 - 古城 -     ~~~古城风~~~

以下是凌风现在使用的解决方法:

----------------------------------------------------

凌风(33446***) 09:28:58

信通宝代码在平台中可用部分之一:

//添加P3P到HTTP头输出流,用于解决IFrame下不能设置cookie的问题

Response.AddHeader("P3P", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");

凌风(3344***) 09:31:16

在IE下是不能在IFrame中设置cookie的,在FF下可以,但将以上代码拷贝到Page_Load中,即可解决该问题。  

---------------------------------------

此方法应用在信通宝第2版中,并通过测试。

二、P3P

什么是P3P?

P3P是万维网联盟(W3C)公布的一项隐私保护推荐标准,旨在为网上冲浪的Internet用户提供隐私保护。现在有越来越多的网站在消费者访问时,都 会收集一些用户信息。制定P3P标准的出发点就是为了减轻消费者因网站收集个人信息所引发的对于隐私权可能受到侵犯的忧虑。P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将被保留多少时间及其使用信息的方式,如站点应做诸如 “本网站将监测您所访问的页面以提高站点的使用率”或“本网站将尽可能为您提供更合适的广告”等申明。访问支持P3P网站的用户有权查看站点隐私报告,然 后决定是否接受cookie或是否使用该网站。

访问官方P3P网页以获取更多技术信息:http://www.w3.org/P3P

三、相关技术文章

  1. Help! IE6 Is Blocking My Cookies[1][2]

    a).What is P3P?

    b).Why Does IE6 Block My Cookies?

    c).What are Third-Party Cookies?

    e).How Can I Prevent IE6 from Blocking My Cookies?

    f).How Do I P3P Enable My Web Site and Use Compact Policies?

    g).I P3P-Enabled My Site, But My Cookies are Still Being Blocked by IE6

    h).My Cookies aren't being Blocked, But Users are Not Able to View an i).IE6 Privacy Report for My Site

  2. The Platform for Privacy Preferences 1.0 Deployment Guide
  3. Make Your Web Site P3P Compliant

    此文通过6个简单的步骤介绍如何在网站上实施P3P策略。

四、“官方”的解决方法

看完了第三节的文章你会发现,所谓P3P策略实际就是一个部署在Web服务器上的简单XML文件,指明网站打算使用哪些cookie以及派什么用途。这个XML文件类似这种格式

     

          < P>

              name="*"

              value="*"

              domain="*"

              path="*"/>

     

可以使用IBM的P3P策略编辑器IBM's P3P Policy Editor来编写这个文件。

三种部署方式:

  1. Well-Know location

    /w3c/p3p.xml

    将P3P Reference File档案更名为p3p.xml,并放置在/w3c目录当中

  2. HTTP 头

    P3P:policyref="http://www.mysite.com/w3c/p3p.xml" CP="ALL DSP COR NID CUR OUR IND PUR"

    CP是由3字符代码组成的列表(相关信息已经在W3C网站上进行了说明)。在上例中,该网站不定期地(INDefinite)为OUR公司收集购买商品项 目(PURchasing)或完成当前活动(CURrent)的有关数据。有疑问(DiSPutes)、不可识别(Nonidentifiable)的数 据作为cookie存储(NID)。由于我们的网站以cookie的方式存储客户号,所以NID应该从列表中删除。

    CP应该匹配完整的策略;因此,如果你在CP中使用了NID,那么你应该在你的策略文件中包括标签。为了匹配这些设置 而在下一节介绍的校验工具会对以上代码进行检查,如果有差异的话,Internet Explorer 6.0浏览器也会检查策略文件并且令策略文件无效

    如果是asp/asp.net/jsp/php等动态页面,也可以添加类似以下代码:

    response.setHeader("P3P","policyref="http://www.mysite.com/w3c/p3p.xml" CP="ALL DSP COR CUR OUR IND PUR"");

  3. 在HTML内容中嵌入Link标签

五、参考资料

  1. www.google.com
  2. www.baidu.com
  3. http://www.w3.org/P3P/
  4. http://www.w3.org/P3P/details.html
  5. http://www.w3.org/TR/p3pdeployment
  6. http://www.builder.com.cn/developer/code/story/0,3800066897,39034857,00.htm
  7. http://www.w3c.org.hk/

 

资料来源于网络

  评论这张
 
阅读(717)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017