我正在为与单个数据库通信的多个域实施登录和注册 - 我们将其称为i.domain-a.com
和i.domain-b.com
。这两个子域都在DNS中有A个记录指向单个服务器的记录 - 从而使i.domain-a.com/hello.php
和i.domain-b.com/hello.php
运行相同的事情。
因此,如果我在域A上创建会话,那么我可以转到域B并检索相同的会话信息。要为使用我编写的用于处理注册的相同PHP函数的两者实现完全独立的登录系统,我应该根据session_name()
对$_SERVER['HTTP_HOST']
执行某些操作吗?我不确定我的情况与this guy有多相似,并希望这个问题不太相似。
答案 0 :(得分:3)
为避免会话出现问题,您应该使用session_name('myapplication')[session_name({UNIQUE_APP_ID})]。
您提到的问题可能发生在更简单的情况下,其中有一个管理面板和网站用户的登录表单。
如果未使用session_name,则已登录的用户可以访问管理员。面板但这取决于身份验证。您已实施的计划和机制。
的问候,
答案 1 :(得分:2)
会话/ Cookie是特定于域的,不依赖于DNS设置。如果您希望两个系统的会话在不同的域上分开,那么您已经完成了设置。
我相信session_name()
实际上是其他人问题的最佳解决方案,同一领域的两个单独会话。
答案 2 :(得分:0)
没有。阻止不同用户获得相同会话的机制基于每个服务器工作,而不是基于每个主机名。