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

