这里先说明下环境:

帝国cms: v6.6

今天对帝国的一个列表刷新了下,但是突然发现生成的新页面爆出了php代码,这是咋回事


处理:因为仅仅从帝国界面上看不出来原因,所以对帝国代码进行了调试

e/admin/enews.php   //刷新信息列表
e/class/functions.php  //ListHtml生成信息列表
e/class/connect.php    // ReplaceListVars  替换列表模版

$docode 参数代表模版是不是使用了程序代码

排查到这里发现,程序模版的实现很简单

if ($docode == 1) {
   $listtemp = stripSlashes($listtemp);
   eval($listtemp);
}

同时想到帝国刚刚进行了迁移到了新机器,应该是eval函数不允许使用,一检测果然如此