通过P3P头实现跨域设置cookie
PHP的setcookie函数可以设置域,但是只能在当前域内,如果出现多域可由如下办法处理:
实现原理:
www.b.com/set_cookie.php 在b域名下设置a域名的cookie
- <script src="http://www.a.com/set_cookie.php"></script>
www.a.com/get_cookie.php 在a域名下获取cookie
- print_r($_COOKIE);
www.a.com/set_cookie.php 在a域名下设置a域名的cookie
- header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
- setcookie("test", "test value", time()+3600, "/");
实现过程:
访问www.b.com/set_cookie.php,然后访问www.a.com/get_cookie.php就可以获取cookie
其实,我在chrome不用P3P头也可以获取到cookie,但是IE不行,加上P3P头,IE也可以了。
P3P(Platform for Privacy Preferences)正是一种可以提供这种个人隐私保护策略,一般浏览器都支持P3P协议。P3P header允许跨域访问隐私数据,从而可以跨域set-cookie成功
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步