P3P解决cookie跨域

P3P解决cookie跨域P3P是什么P3P(PlatformforPrivacyPreferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。 P3P标准的构想是:Web站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将被保留多少时间及其使用信息的方式,如站点应做诸如“本网站将监测您所访问的页面以提高站点的使用率”或“本网站将尽可能为您提供更合适的广告”等

P3P是什么

P3P(Platform for Privacy Preferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。   P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将被保留多少时间及其使用信息的方式,如站点应做诸如 “本网站将监测您所访问的页面以提高站点的使用率”或“本网站将尽可能为您提供更合适的广告”等申明。访问支持P3P网站的用户有权查看站点隐私报告,然 后决定是否接受cookie 或是否使用该网站。

 

利用P3P实现跨域

有别于JS跨域、IFRAME跨域等的常用处理办法,通过发送P3P头信息而实现的跨域。

 

PHP 使用P3P协议

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); 

  

JS 使用P3P协议

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

  

ASP.NET 使用P3P协议

HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"") 

  

JSP 使用P3P协议

response.addHeader("P3P", "CP=IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"); 

 

策略说明

(http://www.w3.org/2002/04/P3Pv1-header.html)

compact-policy-field         =   `CP=”` compact-policy `”`

compact-policy                = compact-token *(” ” compact-token)

compact-token                = compact-access           |

                                          compact-disputes         |

                                          compact-remedies         |

                                          compact-non-identifiable |

                                          compact-purpose          |

                                          compact-recipient        |

                                          compact-retention        |

                                          compact-categories       |  

                                        compact-test  

compact-access           = “NOI” | “ALL” | “CAO” | “IDC” | “OTI” | “NON”

 compact-disputes            = “DSP”

 compact-remedies          = “COR” | “MON” | “LAW”

 compact-non-identifiable = “NID”

compact-purpose           = “CUR”        | “ADM” [creq] | “DEV” [creq] | “TAI” [creq] |

                                        “PSA” [creq] | “PSD” [creq] | “IVA” [creq] | “IVD” [creq] |

                                         “CON” [creq] | “HIS” [creq] | “TEL” [creq] | “OTP” [creq]  

creq                              = “a” | “i” | “o”  

compact-recipient        = “OUR” | “DEL” [creq] | “SAM” [creq] | “UNR” [creq] |

                                         “PUB” [creq] | “OTR” [creq]  

compact-retention          = “NOR” | “STP” | “LEG” | “BUS” | “IND”

 compact-category           = “PHY” | “ONL” | “UNI” | “PUR” | “FIN” | “COM” |  

                                         “NAV” | “INT” | “DEM” | “CNT” | “STA” | “POL” |

                                          “HEA” | “PRE” | “LOC” | “GOV” | “OTC”  

compact-test                  = “TST”

 

简洁策略

常用的简洁策略的 P3P头为 –   P3P : CP=CAO PSA OUR

最简洁的写法是 P3P:CP=.


compact-access(访问):  CAO – contact-and-other  允许第三方cookie的读写)
compact-purpose(目的):  PSA –  pseudo-analysis .目的就是做身份验证、分析
compact-recipient(受体):  OUR – ours 声明使用相关信息的人是谁,ours 第三方自己
 

 

浏览器支持情况

浏览器 默认允许第三方Cookie 是否支持P3P 禁止第三方Cookie后,配置P3P简明策略头的效果
IE6 否 是

HTTP可读写Cookie JS可读Cookie 首次读到P3P头,JS无写Cookie权限.第二次才OK

(第二次.直接Cache.也不行.除非第一次非Cache并读到p3p头.后面我会提到解决方案.)

应当避免JS的写操作

IE7-IE9
否 是 HTTP、JS,可随意读写.
FireFox 是 否 HTTP、JS都不可读写
Chrome 是 部分支持,趋势-否 趋势为HTTP、JS可读不可写.
Safari 否 否 HTTP、JS可读不可写
可以借助借助Post提交表单,实现写操作.
Opera 是
否
JS可读写 HTTP可读不可写.

 

 相关资料:http://www.w3.org/P3P/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234520.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java程序是如何运行的「建议收藏」

    Java程序是如何运行的「建议收藏」当我们写完一个Java源程序的时候,他是怎么被计算机运行的呢?本篇文章就来介绍下Java程序是如何运行的。一、java技术体系传统意义上来讲Java技术体系包含下边几个部分:Java程序设计语言各种硬件平台上的虚拟机class文件格式JavaAPI类库来自商业机构和开源社区的第三方Java类库jdk:Java语言开发工具包。包括Java程序设计语言,Java虚拟机,JavaAPI类库三个部分。jre:Java程序运行时环境。JavaSEAPI类库中的子集合Java虚拟机。jvm:

    2022年7月8日
  • fastadmin 自定义搜索

    fastadmin 自定义搜索PHP代码$offset=input(‘offset’);$limit=input(‘limit’);//获取搜索框的值$filter=input(‘filter’);if($filter){$filter=urldecode($filter);$filter=json_decode($filter,TRUE);foreach($filteras$k=>$v){$where[$k]=[‘like’,”%{$v}%”];}.

    2022年7月13日
  • css3文字导航鼠标悬停气泡动画特效源码下载

    效果体验:http://hovertree.com/texiao/css3/8/效果图:点击这里下载:http://hovertree.com/h/bjaf/8d5vmddq.htm更多特效:ht

    2021年12月22日
  • 一、NSIS介绍_胡沈员介绍

    一、NSIS介绍_胡沈员介绍概述最近需要写一个安装程序,比对了一下现有的安装工具,最后选定了NSIS,最主要的原因一是开源、二是灵活。下面把我的要求简单列举下:1、需要检查系统环境是否满足要求2、需要界面友好的安装过程

    2022年8月4日
  • icem划分网格步骤_ICEM网格划分步骤

    icem划分网格步骤_ICEM网格划分步骤《ICEM网格划分步骤》由会员分享,可在线阅读,更多相关《ICEM网格划分步骤(19页珍藏版)》请在人人文库网上搜索。1、实用标准文案、ICEM网格划分步骤1、在solidworks、workbeach等建立模型(最好模型另存为.txt格式2、在ICEM中导入计算模型3、建立一个文件夹,并选单位。最后点击apply,导入模型ImportGcornetFromPiaohdP可弓旳lidF…

    2022年5月9日
  • 关于YUV420

    关于YUV和RGB色彩模型一样,YUV也是被发明来描述色彩的模型。类似的还有CMYK等。RGB是使用红绿蓝三原色来描述色彩的模型。YUV使用亮度和色度来描述色彩的模型。CMYK是使用青色Cyan、品红色Magenta、黄色Yellow来描述色彩的模型。Y:表示的是亮度。UV是色差。YUV又称YCbCr,Cb代表蓝色差量(U),Cr代表红色分量(V),Y不仅有绿分量,还叠加了亮度信息。

    2022年4月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号