iframe下cookie设置的问题

本文详细介绍了在IE浏览器下,当在iframe中设置cookie时出现失效问题的原因,即由于IE加入了以P3P为基础的隐私保护功能,导致第三方站点设置cookie被自动拦截。文中提供了解决方案,包括在ASP、ASP.NET和JSP中通过设置P3PHTTPHeader来成功设置cookie。同时,解释了P3P策略的背景和作用,以及如何编写P3P策略文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  万恶的IE安全设置问题,估计让不少人为之纠结,最近项目中又被狠狠的坑了一把...  在iframe嵌入页面中设置cookie,会发现cookie失效,取值都为空。在项目中表现为用户登录的登录名称,密码都为空,用户登录信息得不到验证,页面直接跳转至另一个项目的登录页。百度得知在IE下加入了以P3P为基础的隐私保护功能,当第三方站点设置cookie,IE会自动拦截。  只需要设置 P3P HTTP Header,在隐含 iframe 里面跨域设置 cookie 就可以成功。  

  ASP直接在头部加了头部申明  <%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>

   ASP.NET的话  方法一:通过在代码头部加Response.AddHeader("P3P", "CP=CAO PSA OUR"),此方法已经测试,cookie设置成功。  方法二:在Window服务中将ASP.NET State Service 启动。

   JSP:  response.setHeader("P3P","CP=CAO PSA OUR")    

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

 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来编写这个文件

转载于:https://www.cnblogs.com/kathy1860/p/3198144.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值