PHPCMS去除版本更新提醒

phpcms V9 是一个我很喜欢用的CMS系统,尤其是后台的操作界面,大气、直接、稳重。每次打开phpcms后台经常会弹出版本升级的提醒,我想要屏蔽他,不让他再提醒,因为我感觉每次都到服务器端同步这些数据会影响后台使用速度。我就开始查找源码,但是查找过程中我感到很多别扭,好像phpcms故意要隐藏这些东西,下面我慢慢说明我的查找过程。

登录后台后首先进入后台首页,他的地址是:/index.php?m=admin&c=index&a=public_main ,使用浏览器查看源代码发现在网页源代码最后,即</html>后边有一串javascript脚本:

查看远程返回的js脚本:

 

 

哦~原来如此,更新版本提醒的操作是在这里完成的。

我想知道每次访问phpcms服务端时都发送了哪些数据,通过抓包发现当访问后台时,后台主动给phpcms发送了以下数据:

其中有跟版权信息有关的version、release这都正常,可每次都把网站的网址siteurl及使用者的邮箱email也一同发给phpcms服务端,感觉没必要吧。

继续查找,查看main模板\phpcms\modules\admin\templates\main.tpl.php代码并没有找到那个javascript脚本,奇怪!太奇怪了!怎回事呢?!

找到控制器文件\phpcms\modules\admin\index.php的public_main方法最末位调用了system_information函数,追溯这个函数是在\phpcms\modules\admin\functions\admin.func.php中定义的,如下:

解码base64_decode里的内容后是:

看到了吗,如果你不调用这个脚本,整个页面都是显示空白,因为$(“#main_frameid”).removeClass(“display”);去除这个css样式后页面才能正常显示。我很纳闷,phpcms为什么要把这个搞的这么复杂?为什么把代码base64进行编码?为什么不调用这个方法你就无法正常访问页面?很明显这是刻意的隐藏,可为什么要隐藏呢?

先不思考为什么了。继续往上追溯,system_information函数里调用了$update = pc_base::load_sys_class(‘update’);,它的定义文件在\phpcms\libs\classes\update.class.php的

到这里,我发现原来每次访问后台都有那么多数据要回传到phpcms服务器啊!!!

您可能还喜欢...