P3P之殇

P3P:Platform for Privacy Preferences (P3P) (https://www.w3.org/P3P/)
P3P 计划是由服务端告知浏览器一系列多选项问题的答案组成的策略。

P3P规范也包含有用于请求和传输P3P策略的协议.P3P协议所基于的HTTP协议与 Web 浏览器用来与 Web服务器进行通信的 HTTP 协议相同。
不论在何时设置cookie都可以用特定的HTTP报头来传送一个可选的 P3P 简洁策略。

引自:http://www.cnblogs.com/_franky/archive/2011/03/16/1985954.html

大部分查询P3P资料的朋友都是在解决跨域ajax请求和跨域读写cookie两个事的时候偶然知道了这个名词,所以我就不多说了,直接上结论,其他的大家可以参考官方网站以及其他资料。

for IE developers
一些企业应用都是IE only,用P3P解决跨域问题可行,前提是浏览器仅限于IE7~10,做法就是在页面返回的http header中增加一行
P3P:CP=
因为IE对P3P简洁策略的支持,属于搞笑级别的.根本不看内容。(PS:再度引用上文资料)

FOR OTHERS
别看P3P了,兼容性完全不行,项目理念也有安全风险,也未作为正式标准进入http协议内容,甚至我的《松鼠·HTTP权威指南》里一句话都没提过。

对于同网站不同二级域名下解决跨域ajax请求和跨域读写cookie,想要兼容现代浏览器、移动浏览器的朋友,下面是我们整理的一套可行方案
1.设置cookie的domain为一级域名,如.ffan.com,*.ffan.com,ffan.com,此时,浏览器中cookie可以在任一二级三级域名的页面、图片、接口地址中获取到
2.使用jsonp代替json,json仅在同域名,相对路径下可以请求,否则有跨域问题,为此除了jsonp外还可以考虑在json输出前设定response http header 中Access-Control-Allow-Origin: *,不过要注意的是不能设置多次Access-Control-Allow-Origin,否则浏览器仍然不识别。
jsonp的方案所有参数均通过get方式明文传输,Access-Control-Allow-Origin方案需要小心的设置header,但支持get、post两种,可以按需选择。

Leave a Reply

Your email address will not be published. Required fields are marked *