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

回到顶部