phpcms登录失败,关于多线接入上网的大坑。
phpcms是个老旧CMS。最近拿来给客户做个站点,在本机测试,啥问题没有,传到服务器上后,发现用户登录失败,登上去立刻就失效,退出了!?
一开始以为是location.href跳转导致的cookie丢失,查了好多资料,好像没啥办法 只能在跳转的时候setTime几秒钟。慢一点跳转就可以。但是好像phpcms后台登录并没有问题,后台登录和用户登录机制完全一样,为什么用户登录就会丢cookie?
下个抓包工具看看,发现cookie不是丢了,而是被代码注销了?奇怪?继续看代码。
发现前后端通讯的时候,有个密钥来回加密解密。
跟进代码看一下,发现这个密钥的生成竟然用IP来做参数。
晕,我们单位上网是联通、移动双宽带,会不会是ip地址在登陆后切换了,写个echo ip();
真的是一刷新 ip就换一个。
晕。忙了一晚上,就是这个问题。走了不少弯道。
去掉IP参数,好啦!哈哈
function get_auth_key($prefix,$suffix="") { if($prefix=="login"){
//双线接入被坑惨
$pc_auth_key = md5(pc_base::load_config("system","auth_key").ip());
}else if($prefix=="email"){
$pc_auth_key = md5(pc_base::load_config("system","auth_key"));
}else{
$pc_auth_key = md5(pc_base::load_config("system","auth_key").$suffix);
}
$authkey = md5($prefix.$pc_auth_key);
return $authkey;
}
以上是 phpcms登录失败,关于多线接入上网的大坑。 的全部内容, 来源链接: utcz.com/z/516812.html