P3P解决cookie跨域

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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"'); 

Jetbrains全家桶1年46,售后保障稳定

  

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • weblogic EJB 学习

    weblogic EJB 学习EJB学习笔记1、ejb基础知识(1)无状态会话bean不保存客户机的会话状态优点:使用小量的实例即可满足大量的客户。每个实例都没有标识,相互之间是等价的。等?的无状态会话bean:多次和一次调用的结果和效应相同。在集群中可以负载均衡a机器失败,可以在b机器上重试非等?的无状态会话bean:如:计数器…

    2022年9月30日
    0
  • MySQL官网下载太慢的解决方法

    MySQL官网下载太慢的解决方法今天重新配置了服务器,所有环境都搭建好了,万事具备,只欠MySql,于是去官网找了5.7版本的下下来。可是画风是这样的,有点跨。。。在网站查了半天,也没有找到好的解决办法,捣鼓了半天,终于搞定了,下面说下解决方法。第一步,进入官网,选择需要下载的版本,我选择的是Linux通用版5.7,点击Download第二步,按F12,有些电脑是Fn+F12,查看下载地址第三步,复…

    2022年6月2日
    46
  • EasyCVR通过Ehome协议接入部分设备显示离线排查报告

    EasyCVR通过Ehome协议接入部分设备显示离线排查报告对于需要将不同视频协议做融合的项目,我们一般都是建议大家选用EasyCVR视频平台,EasyCVR支持多种协议的视频接入,对于通用的第三方协议,我们支持了海康的Ehome和GB28181的国标协议。EasyCVR视频网关平台接入的部分Ehome设备显示离线,可以从下图中看到,除了通过HIKSDK接入的设备外,通过Ehome接入的设备全部离线:可见离线的部分设备都是Ehome协议接入,Ehome设备为主动注册类型,判断设备是否真实在线的方法一般为抓取对应对端口7660的包,或者是在海康sdk的回调

    2025年7月6日
    0
  • 关于数据库tinyint 字段的值范围「建议收藏」

    关于数据库tinyint 字段的值范围「建议收藏」tinyint从-2^7(-128)到2^7-1(123)的整型数据。存储大小为1个字节。unsigned是从0到255的整型数据。所以建表的时候只能是tinyint(3),哪怕你建tinyint(100),他最大还是3位这么多。转载于:https://www.cnblogs.com/jinhaidong/p/5944554.html…

    2022年9月14日
    1
  • c++读取json文件_cfile读写文件

    c++读取json文件_cfile读写文件说明:本篇文章主要参考了如下博主的内容,地址附上:一、JSON文件简介1、什么是JSON文件? JSON文件是一种文本文件,一种配置文件,它具有严格的编写规则,这样可以是使用者更好的阅读和使用该类型文件。它的编写规则如下:JSON文件使用花括号括起来,代表一段数据,这段数据里面可以有多个字段。每个字段的结构有点类似于Map容器,一个key对应一个value。字段名必须用双引号包围,而字段的值可以是多种类型,例如浮点型、整形、字符串类型,甚至可以是一个新的数据段,就数据的嵌套。2、JSON文

    2022年10月9日
    0
  • 9. 数仓开发之 DWD 层

    9. 数仓开发之 DWD 层数仓开发之DWD层交易域加购事务事实表DWD层设计要点:DWD层的设计依据:维度建模理论,该层存储维度模型的事实表DWD层的数据存储格式:orc列式存储+snappy压缩DWD层表名的命名规范:dwd_数据域_表名_单分区增量****全量标识(inc/full)交易域加购事务事实表…

    2022年6月26日
    36

发表回复

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

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