phpcmsv9后台登陆时,会向官网http://update.v9.phpcms.cn联网,说是检查更新,实际同时也收集网站以及管理员的用户信息还有登陆者的设备等信息。开始以为去掉后台模板中的相关网址就行了。结果登陆时还是发现会向官网提交信息。于是追了一下。在登陆成功后,会首先显示一个默认页。显示管理员名字,服务器信息等。它是调用modules\admin\index.php中的public_main()方法加载的。
在这个方法中的最后几行代码如下:
$designer = '张二强'; ob_start(); include $this->admin_tpl('main'); $data = ob_get_contents(); ob_end_clean(); system_information($data);
意思是,将内容缓存,然后给$data,再调用system_information处理。
system_information()函数,显然是一个已经加载的类库中的函数,查询后发现它位于modules\admin\functions\admin.func.php文件中。代码如下:
function system_information($data) { $update = pc_base::load_sys_class('update'); $notice_url = $update->notice(); $string = base64_decode('PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoIiNtYWluX2ZyYW1laWQiKS5yZW1vdmVDbGFzcygiZGlzcGxheSIpOzwvc2NyaXB0PjxkaXYgaWQ9InBocGNtc19ub3RpY2UiPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik5PVElDRV9VUkwiPjwvc2NyaXB0Pg=='); echo $data.str_replace('NOTICE_URL',$notice_url,$string); }
这里有一个解码来获得字串,我们先解码看看这些字符串是什么。
加个 echo $string 看看。结果浏览器中什么也没有。嗯?明明解码成字符串,为什么什么也没有呢?其实是有的。它是一段‘javascript'字串,所以你在浏览器中看不到。
解码后的内容如下:
<script type="text/javascript">$("#main_frameid").removeClass("display");</script><div id="phpcms_notice"></div><script type="text/javascript" src="NOTICE_URL"></script>
到这里还看不出什么。然后,它将src=”NOTICE_URL”中的NOTICE_URL替换成noticeurl。然后加到已经生成的data数据后面。也就是向$data中加了一段代码。
加的网址从何而来,加的又是什么网址呢?
函数先加载了update类。然后调用了该类的notice()方法。我们跟进类文件libs\classes\update.class.php看看。
function notice() { return $this->url('notice'); } function url($action = 'check') { $modules = ''; $site = getcache('sitelist','commons'); $sitename = $site['1']['name']; $siturl = $site['1']['domain']; foreach ($site as $list) $sitelist .= $list['domain'].','; $pars = array( 'action'=>$action, 'phpcms_username'=>'', 'sitename'=>$sitename, 'siteurl'=>$siturl, 'charset'=>CHARSET, 'version'=>PC_VERSION, 'release'=>PC_RELEASE, 'os'=>PHP_OS, 'php'=>phpversion(), 'mysql'=>$this->db->version(), 'browser'=>urlencode($_SERVER['HTTP_USER_AGENT']), 'username'=>urlencode(param::get_cookie('admin_username')), 'email'=> urlencode(param::get_cookie('admin_email')), 'modules'=>ROUTE_M, 'sitelist'=>urlencode($sitelist), 'uuid'=>urlencode($this->uuid), ); $data = http_build_query($pars); $verify = md5($this->uuid); if($s = $this->module()) { $p = '&p='.$s; } return $this->update_url.'?'.$data.'&verify='.$verify.$p; }
这里收集了网站的多种信息,然后生成一个网址,加到js中,就会自动向该网址访问,并将信息提交给官网。
最后加到页面后面的代码是这样的(解码后):
<script type="text/javascript" src="http://update.v9.phpcms.cn/index.php?action=notice&phpcms_username=&sitename=默认站点&siteurl=http://localhost/phpcms/&charset=utf-8&version=V9.6.3&release=20170515&os=WINNT&php=7.0.12&mysql=5.5.53&browser=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36&username=phpcms&email=275423729@qq.com&modules=admin&sitelist=http://localhost/phpcms/,&uuid=0b5aacb6-0d3c-13e2-a47b-d9cb3a26d359&verify=83f1ab93b35fb87202e613e4decbecc2"></script>
这就是向官网提交我们网址,管理员名字浏览器等信息的代码啊。难怪此前清除了模板中update.v9.phpcms.cn网址仍然提交,原来它将网址加密了,然后还加了你的相关信息。
如何删除它?
一是换一个网址,将http://update.v9.phpcms.cn/index.php换成你的。不让它向官网提交,但访问你的网址你并不需要。最好的办法是去掉访问。
但不要这段代码是不行的,会无法显示。因为$(“#main_frameid”).removeClass(“display”); 是让加载的页面显示,也就是说默认是不显示的。没有js,浏览器不显示内容。我们要干掉的其实是这个‘'
去掉它,将剩下的:
<script type="text/javascript">$("#main_frameid").removeClass("display");</script><div id="phpcms_notice"></div>
base64_encode。得到
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoIiNtYWluX2ZyYW1laWQiKS5yZW1vdmVDbGFzcygiZGlzcGxheSIpOzwvc2NyaXB0PiA8ZGl2IGlkPSJwaHBjbXNfbm90aWNlIj48L2Rpdj4=
替换原来的,就可以了。
官方 LSV官方网站包含了公司的产品、服务介绍以及SDK开发包的提供,用户可以进入官网下载产品免费使用,也可对相关产品服务进行了解。 点击链接了解详情 QQ群 LSV的用户交流群,LSV的用户群体几乎涵盖GIS的各个行业,同时开设了不同行业的行业交流群,方便大家交流和技术探讨。 公众号 LSV拥有自己的公众号,发布LSV相关的资讯、教程以及相关应用方案,用
如果您想将自己的插件发布到 官方的插件库,可以参考下面的步骤进行操作。 创建 github 仓库 Github 仓库可以用来存放插件相关的代码及所有必须的资源,方便其他用户获取。关于 github 仓库的创建,可以参考 github 文档。 创建 webhook Webhook 是在 github 仓库的 Settings -> Webhooks 中添加和管理的。 点击 “Add webhook”
本文向大家介绍Git 好的提交信息,包括了Git 好的提交信息的使用技巧和注意事项,需要的朋友参考一下 示例 对于一个遍历的人来说,重要的是git log要容易地理解每个提交的含义是很重要的。良好的提交消息通常包括跟踪器中的许多任务或问题,以及对完成的内容,原因以及有时的完成方式的简要说明。 更好的消息可能看起来像: 而以下消息将不太有用: 测试提交消息是否以正确的心情进行测试的一种方法是用消息替
git 闪烁消息效果由特殊字符实现,该特殊字符可以在 Vim 等编辑器中输入,但同时需要终端支持。 制作方式 首先,输入 git commit 进入默认编辑器修改 commit 信息,进入 Vim 的插入模式, 输入 Ctrl + v,放手后再按 Esc 键即可得到形如 ^[ 的字符(实际上并不是); 紧接着再输入 [5m,之后再输入 commit 信息(这里假设内容为 COMMIT_MESSAG
本文向大家介绍phpmyadmin中禁止外网使用的方法,包括了phpmyadmin中禁止外网使用的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了phpmyadmin中禁止外网使用的方法。分享给大家供大家参考。具体方法如下: 首先,在phpmyadmin文件夹中找到 phpmyadmin.conf 在文件中能看到如下面一段配置 找到 Deny from all 意思是禁止所有访问,但允
本文向大家介绍详解jquery中$.ajax方法提交表单,包括了详解jquery中$.ajax方法提交表单的使用技巧和注意事项,需要的朋友参考一下 jquery手册描述: data 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应