DSP

Cookie跨域写入IE浏览器问题

2019-07-13 18:19发布

通过P3P规范让IE跨域接受第三方cookie,具体做法是在response的header信息中加入P3P响应头信息。 如Java中可加入以下代码: response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'");   什么是P3P? P3P是一种被称为个人隐私安全平台项目(the Platform for Privacy Preferences)的标准,是一个隐私设定平台规范。这个规范极其复杂,若要讲清楚,天都黑了一半,附百度百科:P3P。简言之,就是网站向浏览器声明自己的隐私政策,比如网站是否搜集访问者的个人信息,设置 cookie 的用途等等。浏览器会依据设置,决定在第三方请求的条件下是否接受网站的 cookie。 完整地部署 P3P 包括设立隐私政策文件(policy.html)、原则档(policy.xml)、参考档(p3p.xml),有兴趣详细了解的可以参考 MSDN 中关于部署 P3P 的文章。   也许有人要问了,"CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'"这长长一串都是什么意思呢? 这些标签就是 P3P 所规定的了,例如 NOI 表示不搜集可识别用户的资料,ADM 表示信息搜集会用于网站管理,详细内容请参考W3官网中的描述浏览器会根据这些标签决定是否接受 cookie,根据测试结果,加上 NOI 最省事,一个就够了。不过网站一般很难做到 NOI,除非永远匿名,“登录”功能可能就违背了NOI。理论上讲,标签应该真实地反映网站的信息搜集行为,若声明的隐私政策与实际行为不符,是会要负法律责任的。Stackoverflow 有篇讨论提出了法律相关议题,可以参考。