【发布时间】:2015-09-06 16:47:27
【问题描述】:
我已经在 Opencart 论坛上发布了这篇文章,但是没有人可能弄清楚问题出在哪里。
运行 Opencart 1.5.6.4。 PHP-5.4.42
如果用户 X 在网站上登录,如果另一个用户访问该网站,他也会自动从 X 的帐户登录。我亲眼目睹了这一点,当我浏览时,它显示我以居住在 500 英里外的客户的身份登录!如果用户 X 在他的购物车中添加了一些东西,它也会显示出来。
所以,由于我是通过该帐户登录的,因此我可以从该帐户做任何我喜欢的事情,下订单,修改详细信息等。太可怕了!随着我网站流量的增加,整个问题变得更加严重。
我尝试将 save.session_path 完全移动到不同的文件夹 /tmp,但没有帮助。
我不是全职开发人员,所以很难找出问题所在。如果有人可以提供帮助,那就太好了。
php.ini 有以下与会话相关的条目
session.save_path = /webroot/sitename/tmp/
session.use_only_cookies = 1;
session.use_trans_sid = Off;
session.cookie_httponly = 1;
session.gc_maxlifetime = 3600;
session.php
class Session {
public $data = array();
public function __construct() {
if (!session_id()) {
ini_set('session.use_only_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
ini_set('session.cookie_httponly', 'On');
session_set_cookie_params(0, '/');
session_start();
}
$this->data =& $_SESSION;
}
function getId() {
return session_id();
}
}
【问题讨论】:
-
我们需要查看您的所有设置,例如 save.session_path,以及处理您的登录和 cookie 的代码。
-
您是否启用了任何页面缓存?
-
@Barett- 已添加相关代码。不确定哪些文件处理 cookie 和登录。让我知道,以便我发布相关代码。
-
@JayGilford 是的,页面缓存已启用。
-
那么我会冒险猜测当客户登录时它没有被禁用
标签: php session opencart session-variables session-cookies