PHP编写主机内容过滤,Ecshop教程:通过修改过滤模板里的php代码,防止模板被挂马...

这篇博客介绍了ECSHOP用户在PHP免备案空间上遇到的网站频繁被挂马问题,主要是由于旧版本的ECSHOP存在模板支持PHP代码的安全隐患。文中提供了一个灵活的解决方案,即通过修改cls_template.php文件添加delete_php_code函数,过滤模板中的PHP代码,以防止恶意挂马。此外,还提醒用户关闭display_errors并修改错误处理函数来避免管理员密码MD5值泄露。
摘要由CSDN通过智能技术生成

最近有些使用ecshop的老用户在php免备案空间上的网站经常被挂马,虽然在网上有个多的处理方法,可能是由于版本过低,很多新的修复补丁没有打上吧导致经常挂马;对代码又不懂的人来说,确实很麻烦。要知道ecshop的模板是支持php代码的,这就给一些不法分子创造了挂马的机会,这些不法分子挂马步骤很可能是:

1、通过ecshop的漏洞搞sql注入,暴出管理员密码md5值,然后通过**md5得到管理密码。(注:防止暴出管理密码md5值的方法是关闭display_errors,并且修改cls_mysql.php里的ErrorMsg函数,注释掉所有错误输出代码或把错误写入文件)

2、进入管理后台,通过模板管理-》库项目管理,编辑lbi文件,添加php代码,例如<?php @eval($_POST['lx']);?>

3、到这里,就完全控制这个站了,想挂什么马就挂什么马。

可见,ecshop的模板支持php代码这点是非常危险的,因此我们应该过滤模板里的所有php代码。虽然新的补丁有这个功能,打上新的补丁就可以了,但是无忧小编在网上找到了一个更为灵活的方法,就是添加一个函数代码:

1、修改cls_templage.php文件,添加函数:function delete_php_code($content)

{

if(!empty($content))

{

$pattern='/\/U';

return preg_replace($pattern,'',$content);

}

}

2、第165行

$out = $this->_eval($this->fetch_str(file_get_contents($filename)));

修改为:

$out = $this->_eval($this->fetch_str($this->delete_php_code(file_get_contents($filename))));

3、第260行

$source = $this->fetch_str(file_get_contents($filename));

修改为:

$source = $this->fetch_str($this->delete_php_code(file_get_contents($filename)));

这样一来,模板里的php代码就被过滤掉了,防止模板被挂马。

无忧主机相关文章推荐阅读:

ECSHOP教程:团购提示“商品库存不足”

ECSHOP教程:设置商品比较浮动块的上下位置

ECSHOP如何把商品详情页用户评论修改为商品名称+评论字样的方法

本文地址:https://www.51php.com/ecshop/20117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值