帝国CMS 后台登录空白 处理方法一则

在使用帝国cms时,后台登录后突然变为空白页,没有任何错误提示,且没有错误日志。本文介绍其处理方法之一。

经过

晚上11时左右,在调整帝国后台编辑器时,突然发现后台完全空白。重新登录时,完全空白。这个现象是突发的,我个人在修改的js文件,怎么会突然影响网站后台呢?百思不得其解。

探究

  • 恢复了正在修改的js文件,无效。
  • 查看/e/config/config.php 未发现异常,文件未改动。
  • 打开php.ini的display_error,打开config.php中的sql错误显示和错误提示显示,无效,依然空白。
  • 突然想到手机端还有一个独立的后台,尝试了登录一下,也是空白。
  • 仔细查看apache错误日志,php只报了一些warning级别的,没有fatal。
  • 查看了mysql的运行状态,没有异常。

这就有意思了,竟然没有任何错误提示。

所以我只能怎么做呢,只能用最古老最白痴的,中断式排查。

通过探索登录过程中涉及的文件,发现/e/class/connect中,代码走到DoSafeCheckFromurl();函数,就停了。

那么根据这个文件名,很明显,是在检查后台来源网址,记得在config.php中见过一个类似的配置项。

解决

编辑/e/config/config.php中

$ecms_config['esafe']['ckfromurl']=0;    //是否启用来源地址验证,0为不验证,1为全部验证,2为后台验证,3为前台验证,4为全部验证(严格),5为后台验证(严格),6为前台验证(严格)

 

设置为0

故障解决。

思考

其实这个问题,是挺尴尬的。我认为应该是服务器防火墙的问题。

服务器的防火墙,可能认为该站点正在遭受cc攻击,它可能做出了一定的防护,主要是跳转式的防护,导致帝国cms的来源地址验证失效,产生了如此闹心的问题。

一个没有输出错误提示的错误,让我熬夜写了这篇解决方案。希望能给后来者节省时间。

点赞
  1. tenfon说道:

    能问一下,你中断式排查是怎样的方式?求教~

    1. aspirantzhang说道:

      就是在代码的各个地方用echo '1';echo '2';echo '3';看看最终输出代码缺谁。。。 :sad:

发表评论

电子邮件地址不会被公开。 必填项已用*标注