|
做2u产品库,遇到了棘手的问题,做这个最近浏览的产品时,总是出错,下面就是这个问题的分析。晕,明明在firefox,ie7下正常,ie6就是有问题。
一、起因
信通宝在客户网站上浮动窗口的实现是通过在客户的网站上加上一段链接脚本,脚本在客户网站上写入一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中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就会自动拦截(在状态栏下显示红色禁止图标),可以通过查看得到类似如下图的隐私报告:

以下是凌风现在使用的解决方法:
----------------------------------------------------
凌风(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。
三、相关技术文章
四、“官方”的解决方法
看完了第三节的文章你会发现,所谓P3P策略实际就是一个部署在Web服务器上的简单XML文件,指明网站打算使用哪些cookie以及派什么用途。这个XML文件类似这种格式
<META xmlns="http://www.w3.org/2000/12/P3Pv1">
<POLICY-REFERENCES>
<POLICY-REF about="/P3P/Policy1.xml">
<COOKIE-INCLUDE
name="*"
value="*"
domain="*"
path="*"/>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
可以使用IBM的P3P策略编辑器IBM's P3P Policy Editor来编写这个文件。
三种部署方式:
五、参考资料
| 谁顶了这篇日志>> 还有谁对该日志投票? | 最近读者>> | ||||||||
|
| 发表评论:查看评论 | |||
|
|
|||
| 内 容: |
|
||
| *Ctrl+Enter快速回复 | |||