我正在尝试设置以下内容:
login.domain.com
site1.domain.com
site2.domain.com
https://domain2.com
如果用户访问site1.domain.com或site2.domain.com并且他们未登录,则会重定向到login.domain.com/?url=site1.domain.com
在php aplication domain.com上。我使用redis设置了php.ini会话。
session.save_handler=redis
session.save_path="tcp://127.0.0.1:6379?weight=1&database=14"
验证成功后。我设置了cookie session_id。
在site1.domain.com和site2.domain.com上。我得到Cookie
$sessionid = $_COOKIE['session_id'];
session_id($sessionid);
session_start();
用户登录成功。
但我有问题。如何domain2.com获取cookie,域https SSL访问它和安全性。
答案 0 :(得分:0)
您可以做的是直接在URL中传递会话。因此,当您链接到domain2.com
时,您会像这样传递会话(假设您没有更改默认的会话ID处理程序)
domain2.com?PHPSESSID=[your session ID here]
虽然存在一些潜在的安全风险(如果我是你,我会在关键点重新生成ID),它可以解决您的问题。
另一种解决方案是散列会话ID并将其存储在Redis实例中,然后根据该哈希设置会话。这样一点安全。