我目前面临以下问题:
主域正在运行具有特定于框架的会话的特定PHP框架;现在有一个新的子域,它运行不同的PHP框架,我需要与子域共享主域的登录会话信息。即用户只能在主域注册,但一旦登录,他们也将登录到子域中的帐户。还应注意,子域无法访问主域db。
有了这些限制,我想出了以下解决方案:首先我将域cookie设置为.mydomain.com
,这样我就可以访问子域上的会话cookie。接下来,我在主域上实现一个简单的API调用,它返回登录状态以及其他会话信息。 API网址将具有仅限于子域服务器的IP白名单,并且一旦登录用户从主域到达子域,则使用用户cookie服务器端(可能是cURL)请求API网址。一旦用户在子域上以这种方式进行身份验证,就会为他分配一个特定会话的令牌,从那里我可以将其作为子域上的常规和单独会话进行管理。
现在我的问题是你是否可以在此设置中看到任何安全漏洞?或建议任何改进或更好的方法来做到这一点......
由于
答案 0 :(得分:0)
对我来说,我想我会使用单点登录概念。用户通过任何域或子域登录后,为该用户生成访问令牌,登录。 之后使用相同的访问令牌来检查和验证用户的不同域名,而不是使用单独的会话。这可能导致会话劫持并且难以管理多个会话。创建会话后,使用访问规则分配访问令牌。这将使登录的无缝过程也易于管理。
有关详细信息,请查看单点登录或OAuth 2.0协议。