首页 >原创文章 >软件开发 > >查看文章

nginx环境下iwebshop后台打开出现502错误问题的解决方法

所属分类:软件开发来源: 丁老师原创发布时间:2017-10-13 12:44IP属地: 深圳
点击阅读全文

在nginx环境下,iwebshop后台有时打开一些页面时会出现502错误,经过对nginx日志和php-fpm的分析,排除了是环境问题,最后重回到了iwebshop身上。


经过了不断的查询和分析,发现lib\core\util\urlmanager_class.php的getRefRoute方法有对HTTP_REFERER进行判断处理,再根据getRefRoute方法查找,最重确定在classes\menu.php文件,其中有一句,$lastInfo = IUrl::getRefRoute();,往下走,ISafe::set('lastInfo',$lastInfo);,这句话的意思是对session的lastInfo设置HTTP_REFERER路径,经过分析发现,因为iwebshop的session机制里有对字符串进行安全验证,所以session里包括?%等非法字符都会阻止通过。像iwebshop后台有很多分页,或是查询等待有条件参数的链接,通过这些链接再进入其他url时,就会出错,而导致nginx 502错误。


因为所用iwebshop版本改动有点大,所以就不对safe_code进行处理了。


解决办法:



直接在menu.php中,ISafe::set('lastInfo',$lastInfo);这句话进行注释,也就是说不要在session里设置lastInfo了,lastInfo是在获取菜单的时候,根据session判断如果来路url如果存在,就跳转过去,没什么用,直接屏蔽就是了。


补充:

对lastInfo注释后发现,点击链接后左侧测菜单不能根据所属分类而显示了,比如我选择的是编辑会员,但是左侧就显示的是新闻这些,看来还必须要用到lastInfo来记录历史信息。所以取消注释,在对lastInfo的判断上把非法字符过滤了就可以了。修改后的代码如下:

$lastInfo=explode("?",$lastInfo); ISafe::set('lastInfo',$lastInfo[0]); return self::get($menu,$lastInfo[0]);

dls6.jpg

相关文章

Tiny编辑器无法使用的解决办法

TinyMCE编辑器,是一款轻量级的的网页内容编辑器,支持html,vue,react等前端架构。调用方法也非常简单,引入js文件,在textarea上设置id,然后调用方法即可:<script tinymce.init({selec...

dedecms cookies泄漏导致SQL...

dedecmscookies泄漏导致SQL漏洞

css3中position:sticky无效...

有同学在前端写css代码时,遇到问题,使用的css3,写的是position:sticky,想要内容滚动到该区域,该区域自动置顶滑动。但一直无效,经过丁老师研究后发现,该区域没有定义高度,而使用position:sticky时,是必须要定义...

mysql 1267 Illegal mix...

这个问题,用普通sql语句查询,好解决,把表的字符编码改为对应的就可以了。但在使用视图查询时,比如select'aaa'astypefromxxx;select*fromviewwheretype='aaa'...

推荐文章

微信公众号如何集成对接网站网页

微信公众号可以把官网的网页集成进去吗?想通过微信公众号实现打开公司网站的页面,具体要怎么实现呢?其实这个功能,可以通过微信菜单的方式来实现...

Android Studio 打包APP制作...

在使用androidstudio打包app时,需要制作JKS证书D:\ProgramFiles\Java\jre1.8.0_301\bin keytool-genkey-v-keystoredlq6.jks-aliasdlq6-storep...

php拼装sql语句,换行查询出错的问题解决

在php代码中,遇到复杂的sql语句,需要拼装sql语句,如:$sql='id 10;'$sql='and(statusin(1,2,3,4,5)andidnotin(selectidfromaaawheredate...

如何删除idea软件搜索时的find mas...

在使用idea系列的配套软件时,如intellijidea、PhpStorm、WebStrom时,在搜索文件时,右上角的filemask可以筛选指定类型的文件。但是有时候可能会输入错误,产生多个记录,而且没办法删除,在以后的开发中经常会耽误...

QQ咨询微信咨询