解决TP5项目被恶意篡改、注入代码问题

解决TP5项目被恶意篡改、注入代码问题


首先,谈谈这个曲折的经历!

       第一次,被人用eval()函数注入了文件,发现后,我就禁了这些PHP高危险函数!

       第二次,就是被人在入口文件中注入了代码,在public文件夹中,多出了很多文件。然后我就修改了宝塔面板的密码,加上下面的第2步,目前暂时没有被注入了,希望能帮到大家!

       如果还有更好的办法,希望不吝赐教,留下你宝贵的经验,万分感谢!

1、禁掉高危险函数:eval、phpinfo 这2个函数必须禁掉!

(1)、需禁用的函数名,如下: 
phpinfo、eval、passthru、exec、system、chroot、scandir、chgrp、chown、shell_exec、proc_open、proc_get_status、ini_alter、ini_restore、dl、pfsockopen、openlog、syslog、readlink、symlink、popepassthru、stream_socket_server、fsocket、fsockopen、putenv、create_function

(2)、下面两个可以根据项目中是否用到来决定是否禁用,如下:

error_log、ini_set

(3)、建议可禁用的函数,如下:

pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wi

2、找到 项目根目录/thinkphp/library/think/App.php文件,在373行添加如下代码,用正则去匹配

if (!preg_match('/^[A-Za-z][\w\.]*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}


附上截图:

3、最好是public文件夹的文件都给上权限,不然人家想改就改!

4、服务器中的网站配置,默认文件,如非必要,只保留index.php

此致,应该不会出问题了,我现在还在探索有没有更好的解决办法!
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值