所谓第三方 cookie,就是说你访问网页 A,却接收到域名 B 的 cookie 设定指令。这可能是由于网页 A 请求或链接了 B 的网页,比如上面提到的 iframe 以及 jsonp。

我查到了各个浏览器对于跨域的处理规则,可以看到第三方 cookie ,IE 在默认设置中是做了限制的。

不同浏览器的第三方 cookie 规则
  IE FireFox Chrome Safari Opera
限制第三方coookie

要解决这个问题,有 2 种方法,一个就是上面说到的调整 IE 设置,将第三方域名加入到可信网站列表中;另一个方法,就是 P3P 了。

P3P?

P3P 全称 Platform for Privacy Preferences,隐私设定平台规范。这个规范极其复杂,若要讲清楚,天都黑了一半。简言之,就是网站向浏览器声明自己的隐私政策,比如网站是否搜集访问者的个人信息,设置 cookie 的用途等等。浏览器会依据设置,决定在第三方请求的条件下是否接受网站的 cookie。

完整地部署 P3P 包括设立隐私政策文件(policy.html)、原则档(policy.xml)、参考档(p3p.xml),有兴趣详细了解的可以参考 MSDN 中关于部署 P3P 的文章。

这搞得太复杂了,我只是想在公司内部做各个管理系统的单点登录而已。好在还是有比较简单的方法的,就是发送 P3P 相关的 HTTP header。

ASP.NET:

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

PHP:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

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

JSP:

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

好吧,这些 IDC DSP 什么的是啥意思啊?

这些标签就是 P3P 所规定的了,例如 NOI 表示不搜集可识别用户的资料,ADM 表示信息搜集会用于网站管理……查看完整清单,中文简要清单。

浏 览器会根据这些标签决定是否接受 cookie,根据测试结果,加上 NOI 最省事,一个就够了。不过网站一般很难做到 NOI,除非永远匿名,“登录”功能可能就违背了NOI。理论上讲,标签应该真实地反映网站的信息搜集行为,若声明的隐私政策与实际行为不符,是会要负法 律责任的。Stackoverflow 有篇讨论提出了法律相关议题,可以参考。

除了传送 P3P http header,还可以通过 HTML meta 标签,或者 设定 IIS 服务器 来声明 P3P。

转载于:https://www.cnblogs.com/mrma/p/3373539.html

通过 P3P规范让IE跨域接受第三方cookie session相关推荐

  1. 使用 P3P 规范让 IE 跨域接受第三方 cookie

    参考;http://www.lovelucy.info/ie-accept-third-party-cookie.html 前两天帮同事处理一个 js 跨域问题,使用 jsonp 跨域提交用户名密码请 ...

  2. php domain cookie cross-domian,跨域(cross-domain)访问 cookie (读取和设置)

    Passport 一方面意味着用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的漫游到其他服务里面去.坦白说,目前 sohu passport 在这一点实现的很烂(不过俺的工 ...

  3. 跨域(cross-domain)访问 cookie (读取和设置)

    跨域(cross-domain)访问 cookie (读取和设置) Passport 一方面意味着用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的漫游到其他服务里面去.坦白 ...

  4. 解决使用elementUI框架el-upload跨域上传时session丢失问题

    解决使用elementUI框架el-upload跨域上传时session丢失问题 参考文章: (1)解决使用elementUI框架el-upload跨域上传时session丢失问题 (2)https: ...

  5. 转载 - 通过设置P3P头来实现跨域访问COOKIE

    作者:老王 网上看了别人介绍的一片文章,说使用P3P可以完成跨域COOKIE操作,感觉很COOL,不过没有提供源代码,我胡乱写了一下,大家看看. 实际工作中,类似这样的要求很多,比如说,我们有两个域名 ...

  6. PHP 通过设置P3P头来实现跨域访问COOKIE

    我的是CentOS的系统(Linux 内核) 编辑HOST vi /etc/hosts 加入 127.0.0.1        www.a.com 127.0.0.1        www.b.com ...

  7. CP=CAO PSA OUR 用P3P header解决iframe跨域访问cookie

    短信模块以iframe方式嵌入系统,系统登录时,短信登录失败,这种情况只在win7下IE出现,win10未出现. 原因:IE禁止iframe跨域访问cookie 解决方案: 在短信登录时,进行如下设置 ...

  8. 跨域请求,关于后端session会话丢失的解决办法

    目前使用前后端分离的模式开发,后端提供跨域接口.前端jsonp调用,绑定数据,但是在该站点下有个人中心模块存在的情况下,服务端的session会话会被跨域请求覆盖改掉 大家都知道tomcat使用coo ...

  9. webapi+ajax跨域问题及cookie设置

    最近小玩了点东西,发现简单的东西总能遇到点问题 1.webapi跨域设置 [EnableCors(origins: "*", headers: "*", met ...

最新文章

  1. mysql和sqlserver共存_mysql 和sqlserver的 多行合并成一行
  2. 一周内咸鱼疯转 2.4W 次,最终被所有大厂封杀!
  3. Linux C编程--fork()详解
  4. hmaster和datanaode启动后很快停止_Oracle RAC自启动
  5. Service Mesh 是什么,我们为什么需要它?
  6. linux 下的gettimeofday 函数在windows上的替换方案
  7. zoj2008 最短路
  8. Ubuntu 下 Apache2 与Tomcat5 的交配指南.(转自互联网)
  9. 【UI插件】开发一个简单日历插件(上)
  10. Linux系统下烧录系统镜像
  11. Windows server 2003-2016镜像下载
  12. php超小免杀大马_php大马免杀技巧 | bypass waf
  13. 如何在项目管理中使用PERT图
  14. esxi能直通的显卡型号_显卡参数看不懂?手把手教你选独立显卡
  15. 永磁无刷直流电机的分类与区别
  16. 手机版服务器最新的,我的世界手机版服务器ip地址大全(持续更新)
  17. 怎么删除计算机多余的启动项,怎么删除Win7多余的开机启动项
  18. 拿走不谢,最全匹配中国大陆手机号码的正则表达式
  19. 什么是UE设计?UI设计又是什么?UE和UI有什么区别?
  20. 基于JAVA高校社区生鲜配送系统计算机毕业设计源码+数据库+lw文档+系统+部署

热门文章

  1. 刚从阿里、头条面试回来,尚硅谷java数据结构与算法百度云
  2. 【深度学习】深入浅出 CRF-RNN Layer(The End-to-end)
  3. JAVA怎么创建对象组_java – 如何根据特定字段创建一组有序的对象?
  4. python 内推_网易有道2017内推编程题 洗牌(python)
  5. 网站在改版时如何降低对排名的影响呢?
  6. 网站关键词密度对SEO优化的重要性
  7. 服务器信号分析,服务器及其讯号解析装置 Server and its signal analysis apparatus
  8. boot spring 解析csv_文件系统(02):基于SpringBoot框架,管理Xml和CSV文件类型-阿里云开发者社区...
  9. 少一些计较多_新的一年:少一分计较,多一分宽容
  10. Linux下进行谷歌浏览器安装