博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用P3P共享Cookie与Session小结
阅读量:6322 次
发布时间:2019-06-22

本文共 995 字,大约阅读时间需要 3 分钟。

P3P是什么

P3P是一种被称为个人隐私安全平台项目(the Platform for Privacy Preferences)的标准,能够保护在线隐私权,使Internet冲浪者可以选择在浏览网页时,是否被第三方收集并利用自己的个人信息。如果一个站点不遵守P3P标准的话,那么有关它的Cookies将被自动拒绝,并且P3P还能够自动识破多种Cookies的嵌入方式。p3p是由全球资讯联盟网所开发的。

其实P3P并没有成为标准,只是一种规范,大家都在遵守这个规范来行事而已。

应用场景

1. 跨域共享 Cookie ;

2. 跨域共享 Session ;

演示 - 跨域共享Cookie

演示站点有两个:haoren.com为当前站点、huaidan.com为第三方站点。假设haoren.com站点下有一个P3P-Test.html,代码如下:

P3P Test

可以看到里面的iframe指向了一个第三方站点huaidan.com的setCookie.php页,代码如下:

Set Cookie

代码的意思很简单就是设置一个名为UserName的Cookie。

然后在huaidan.com这个第三方站点下还有一个getCookie.php页面。代码如下:

Get Cookie

意思就是获取一个名为UserName的Cookie并打印到页面上。

重点上演了:

我们访问 http://haoren.com/P3P-Test.html 后,再访问第三方站点的 http://huaidan.com/getCookie.php 发现没有获取到 Cookie。可是 IFrame 明明调用了http://huaidan.com/setCookie.php页面设置了Cookie。其实是因为 haoren.com 和 huaidan.com 代表的是两个域,它们的 Cookie 信息是不能共享的。这个时候我们用上 P3P 了。使用的时候很简单,在 setCookie.php 页面设置 Cookie 之前加上一段设置P3P的代码,完整代码如下:

此步设置后。再按如上顺序访问一次发现 Cookie 设置成功了。

小结

这个问题也就是大家常说的"IFrame 跨域问题"。接下来可以想到 Session 跨域问题。其实道理是一样。

转载地址:http://jbvaa.baihongyu.com/

你可能感兴趣的文章
键盘回收的几种方法
查看>>
Python(条件判断和循环)
查看>>
day4 linux安装python
查看>>
LeetCode Container With Most Water (Two Pointers)
查看>>
https基础
查看>>
RESTful Mongodb
查看>>
如何提高Ajax性能
查看>>
Android--自定义加载框
查看>>
LINUX下 lamp安装及配置
查看>>
BZOJ3105 [cqoi2013]新Nim游戏
查看>>
BZOJ 2118 Dijkstra
查看>>
Jenkins
查看>>
linux下使用screen和ping命令对网络质量进行监控
查看>>
segment
查看>>
面试/编程
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
thinkphp判断更新是否成功
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
人脸识别 开放书籍 下载地址
查看>>
AspNetPager控件的最基本用法
查看>>