您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop登陆自动退出的解决方法
语琴2025-01-14 21:33:21ecshop商城教程已有6人查阅
导读最近在做ecshop的二次开发,程序发布后测试出现一个莫名的问题。点击几次页面后出现session丢失,需要重复登陆;本地怎么测试也都无法重现问题。一开始以为是修改程序的问题
最近在做ecshop的二次开发,程序发布后测试出现一个莫名的问题。点击几次页面后出现session丢失,需要重复登陆;本地怎么测试也都无法重现问题。一开始以为是修改程序的问题,可是怎么找都找不着问题所在。网上搜索了一下,说是ip发生了变化引起的。于是做了如下测试:
1、查询并记录下IP
2、登陆
3、随机点击网页,直到要求重新登陆
4、重新查下IP
果然前后两个IP不一样。因而很有可能是由于IP发生变化导致session失效,于是查看了下ecshop的session机制。其中获取session key的函数是这样
includes/cls_session.php(移动端的也类似:mobile/include/cls_session.php) 当IP发生变化时:substr($this->_ip, 0, strrpos($this->_ip, '.'))获取到的IP段,只要不在同一个IP段内便无法获得相同的session key;进而也就无法获得session的具体信息,也就导致重复登陆。这也是为什么本地无法重现问题的原因。好吧,问题找到了。那么怎么解决呢?最简单的办法就是将获取IP段的部分去掉,于是修改后的函数也就成这样了。 这样便可解决重复登陆的问题。但这又涉及到程序的安全性问题,一旦session泄露IP这一步的判断也就失效了。这也进一步降低了网站的安全性,这中间怎么取舍也就见仁见智了。
1、查询并记录下IP
2、登陆
3、随机点击网页,直到要求重新登陆
4、重新查下IP
果然前后两个IP不一样。因而很有可能是由于IP发生变化导致session失效,于是查看了下ecshop的session机制。其中获取session key的函数是这样
includes/cls_session.php(移动端的也类似:mobile/include/cls_session.php) 当IP发生变化时:substr($this->_ip, 0, strrpos($this->_ip, '.'))获取到的IP段,只要不在同一个IP段内便无法获得相同的session key;进而也就无法获得session的具体信息,也就导致重复登陆。这也是为什么本地无法重现问题的原因。好吧,问题找到了。那么怎么解决呢?最简单的办法就是将获取IP段的部分去掉,于是修改后的函数也就成这样了。 这样便可解决重复登陆的问题。但这又涉及到程序的安全性问题,一旦session泄露IP这一步的判断也就失效了。这也进一步降低了网站的安全性,这中间怎么取舍也就见仁见智了。
本文标签:
很赞哦! (0)
上一篇:ecshop数据库操作函数的修改
暂无内容 |
暂无内容 |
暂无内容 |
暂无内容 |
随机图文
ecshop商城首页显示在线人数怎么添加
今天为大家详细解说一下ECSHOP商城首页显示在线人数添加方法,在ECSHOP中有在线人数的调用方法!ecshop支付插件开发
选完商品,进入购物车页面,点击“结算中心”,页面跳转到flow.php?step=checkout,这个是订单确认操作。在订单确认页面确定了支付方式ecshop邮件队列管理设置说明
邮件队列管理页面的展示所有的插入队列的邮件(就是待发的邮件列表),在此页面可以将不需要发送的邮件删除。如果确定所有待发的邮件没有问题,就可以直接点击页面ecshop邮件验证后送积分的实现方法
它会执行两个动作,一个是调整注册会员积分调整记录日志,一个就是修改个人帐户的积分了。
留言与评论 (共有 0 条评论) |