分类: 系统运维
2011-04-28 16:42:24
今天遇到一个十分怪异的问题:站点的页面中通过iframe包含了站点的页面,测试中发现当使用firefox/chrome浏览站点的页面均正常显示,而换用IE后便出现错误。
一开始我怀疑IE对iframe中的src属性有所限制,比如:不接受服务器端header重定向,因为我在的页面中使用了header重定向功能,但跟踪的结果是所有的URL参数都正常;继而又开始trace程序,最终确定在出错前的一步所有的输入、输出均正确无误;无奈之下只好打印不同浏览器下的cookie,看看他们是否存在差异,殊不知这一trace大吃一惊:IE浏览器下页面无法正确的获取其设置cookie?!
随google之,然后发现了这个说明:
读罢才知道在IE6+或者windows SP2+系统中,微软添加了P3P隐私保护协议的支持,并且默认阻止第三方无隐私安全声明的cookie。
这样一来IE浏览器就能按照你声明的隐私范围处理了。
常见的做法是发送如下的header头:P3P: CP=CAOPSA OUR,在PHP中你可以这样做:header('P3P: CP=CAO PSA OUR');
关于P3P更多的资料请翻阅: