CakePHP,PHP,可以检测到URL切换吗?

时间:2017-10-11 21:34:19

标签: php security session url cakephp

可以检测到“幕后”网址切换吗?这样一旦发生这种情况,切换到的网站上的用户就会被退回到登录页面。

我们有一个生产服务器,登台服务器和演示服务器,连接到各自的数据库。它们碰巧共享由Apache提供的相同物理硬件,来自硬件上的不同URL。我们将PHP与CakePHP框架一起使用。

我已经多次做过的事情是正常登录到其中一个网站,然后输入其中一个网站的URL,它仍然有效。另一个网站认为我已经成功登录,而实际上我已经登录了其中一个“表兄弟”。它“知道”了这一点,因为所有三个人都明显分享会话信息。

我确信某处存在安全风险。我应该尝试使用仅在其中一个网站上有效的帐户。即,成功登录到一个网站,然后查看“堂兄”是否接受由于URL切换而在本地处于非活动状态的帐户。

可以检测并预防这种情况吗?如果是这样,怎么样?或者这个问题无关紧要?

2 个答案:

答案 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
));