可以检测到“幕后”网址切换吗?这样一旦发生这种情况,切换到的网站上的用户就会被退回到登录页面。
我们有一个生产服务器,登台服务器和演示服务器,连接到各自的数据库。它们碰巧共享由Apache提供的相同物理硬件,来自硬件上的不同URL。我们将PHP与CakePHP框架一起使用。
我已经多次做过的事情是正常登录到其中一个网站,然后输入其中一个网站的URL,它仍然有效。另一个网站认为我已经成功登录,而实际上我已经登录了其中一个“表兄弟”。它“知道”了这一点,因为所有三个人都明显分享会话信息。
我确信某处存在安全风险。我应该尝试使用仅在其中一个网站上有效的帐户。即,成功登录到一个网站,然后查看“堂兄”是否接受由于URL切换而在本地处于非活动状态的帐户。
可以检测并预防这种情况吗?如果是这样,怎么样?或者这个问题无关紧要?
答案 0 :(得分:2)
您需要为每个服务器使用不同的会话密钥
cakephp 2.x例如:
AuthComponent::$sessionKey = 'Auth.ServerDev';
cakephp 3.x例如:
'storage'=>['className' => 'Session', 'key' => 'Auth.ServerDev']
答案 1 :(得分:0)
感谢@Bart让我指出了一个非常好的方向。
我发现在CakePHP 2中工作的技巧是编辑APP / Config / core.php文件,找到' Session'配置数组,并设置cookie'一个独特的名字。
E.g:
Configure::write('Session', array(
'cookie' => 'OUR_PRODUCTION', // or "staging", "test", "XYZ", whatever
'defaults' => 'cake',
'timeout' => 60,
// other Session parameters
));