使用P3P协议实现跨域、同步登录
原文地址:http://www.jb51.net/article/40845.htm
有别于JS跨域、IFRAME跨域等的常用处理办法,还可以利用P3P来实现跨域。
http://www.a.com/a_getcookie.php 文件内容:
<?php var_dump($_COOKIE);
?>
http://www.b.com/b_setcookie.php 文件内容:
<script
src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>
通过浏览器访问:
1?> http://www.b.com/b_setcookie.php
2?> http://www.a.com/a_getcookie.php
将http://www.a.com/a_setcookie.php文件内容改为如下:
<?php
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
?>
再次访问:
http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php
在访问b.com域后,设置了a.com域的cookie值。
从上面例子可以看出通过发送P3P头信息而实现的跨域。(在Firefox不发送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"' );
P3P的头部参数解释
引用:
P3P Header is present:
CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
Compact Policy token is present. A trailing 'o' means opt-out, a trailing 'i' means opt-in.
CURa
Information is used to complete the activity for which it was
provided.
ADMa
Information may be used for the technical support of the Web site and
its computer system.
DEVa
Information may be used to enhance, evaluate, or otherwise review the
site, service, product, or market.
PSAo
Information may be used to create or build a record of a particular
individual or computer that is tied to a pseudonymous identifier, without tying
identified data (such as name, address, phone number, or email address) to the
record. This profile will be used to determine the habits, interests, or other
characteristics of individuals for purpose of research, analysis and reporting,
but it will not be used to attempt to identify specific individuals.
PSDo
Information may be used to create or build a record of a particular
individual or computer that is tied to a pseudonymous identifier, without tying
identified data (such as name, address, phone number, or email address) to the
record. This profile will be used to determine the habits, interests, or other
characteristics of individuals to make a decision that directly affects that
individual, but it will not be used to attempt to identify specific
individuals.
OUR
We share information with ourselves and/or entities acting as our
agents or entities for whom we are acting as an agent.
BUS
Info is retained under a service provider's stated business practices.
Sites MUST have a retention policy that establishes a destruction time table.
The retention policy MUST be included in or linked from the site's
human-readable privacy policy.
UNI
Non-financial identifiers, excluding government-issued identifiers,
issued for purposes of consistently identifying or recognizing the individual.
These include identifiers issued by a Web site or service.
PUR
Information actively generated by the purchase of a product or
service, including information about the method of payment.
INT
Data actively generated from or reflecting explicit interactions with
a service provider through its site -- such as queries to a search engine, or
logs of account activity.
DEM
Data about an individual's characteristics -- such as gender, age, and
income.
STA
Mechanisms for maintaining a stateful session with a user or
automatically recognizing users who have visited a particular site or accessed
particular content previously -- such as HTTP cookies.
PRE
Data about an individual's likes and dislikes -- such as favorite
color or musical tastes.
COM
Information about the computer system that the individual is using to
access the network -- such as the IP number, domain name, browser type or
operating system.
NAV
Data passively generated by browsing the Web site -- such as which
pages are visited, and how long users stay on each page.
OTC
Other types of data not captured by the above definitions.
NOI
Web Site does not collected identified data.
DSP
The privacy policy contains DISPUTES elements.
COR
Errors or
wrongful actions arising in connection with the privacy policy will be remedied
by the service.
PS,这里说的跨域主要是设置cookie的情况,如果是跨域读取cookie,要保证在对应设置cookie的时候设置了P3P,否则在读取的事情IE会屏蔽跨域cookie。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?