Loading......
Apr
23
作者:quke.cn   |   分类:Web开发

问题场景

在IE浏览器中,A页面的域名 a.com B页面的域名b.com,现A页面中iframe嵌了个B页面,此时B中的cookie就会失效,同样B中的Session也会失效。

原因

IE浏览器的默认设置禁止了第三方的cookie,因此第三方的session自然也失效;

什么是第三方cookie呢?

     第一方Cookie:是来自当前正在查看的网站,或者发送到当前正在查看的网站。 
     第三方Cookie:是来自当前正在查看的网站以外的网站,或者发送到当前正在查看的网站以外的网站。第三方网站通常提供正在查看的网站上的内容。例如,许多站点使用来自第三方网站的广告,或者iframe的别的网站的url,这些第三方的网站可能使用的Cookie。 

为什么要禁止第三方cookie呢?

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

解决方法:

在第三方的页面即B页面的开头加上如下代码:

response.setHeader("P3P","CP=CAO PSA OUR"); 即可;

每个页面都加这个代码很麻烦,想简单就是做个过滤器,自动加,经验证可行。

原创文章,转载时请注明地址:http://www.quke.cn
由 quke.cn 在 2009-04-23 01:59:28 做最后一次更新!
前一篇:绿豆汤
内容载入中...
  姓名(必填)
  邮箱(选填)
  主页(选填)
内容载入中...