首页 网络安全 网站防护 查看内容

PHP“一句话木马”,如何简单有效地防范?

2019-9-7 03:36 |来自: 互联网 1780 0

摘要: php语言无需编译,动态执行,我们不得不佩服它的开发效率。但正因为可以动态执行,才带来了类似一句话木马等安全问题。因为我们要十分警惕,否则,无论做的再好,都将“满盘皆输”。首选,我们要先弄清楚,一句话木马是如何被植入到系统的,基本存在通过一下几种方式:利用sql注入。sql注入可以通过mys ...
关键词: 文件 入口 php 木马 一句话 函数 漏洞 index 保证 如果

php语言无需编译,动态执行,我们不得不佩服它的开发效率。但正因为可以动态执行,才带来了类似一句话木马等安全问题。因为我们要十分警惕,否则,无论做的再好,都将“满盘皆输”。

首选,我们要先弄清楚,一句话木马是如何被植入到系统的,基本存在通过一下几种方式:

  1. 利用sql注入。sql注入可以通过mysql pdo的预处理来解决。
  2. 利用配置上的漏洞,伪造一张图片,其实是可执行的代码,然后伪造一条地址,类似http://phpvim.net/foo.jpg/a.php。当 php.ini 中 cgi.fix_pathinfo = 1 时,PHP CGI 以 / 为分隔符号从后向前依次检查如下路径,直到找个某个存在的文件,如果这个文件是个非法的文件,so… 悲剧了~。所以要注意上传文件的路径,绝对不能和入口文件在一个目录。
  3. 利用php框架的漏洞,就比如之前thinkphp暴露出来的一样,没有对controller进行正则判断,结果就被利用了,“黑客”利用该漏洞,传输一个函数名字,控制后台执行该函数,如果该该函数为file_put_contents,一句话木马:就很容易被植入到服务器上。剩下的就不用说了。

那么我们该怎么防范呢?其实无论我们有多小心,还是无法百分百确保安全。在这里我提供一种简单有效的方法供大家参考。

第一步,固定PHP的访问入口,如果是index.php,nginx的配置如下:

#只允许index入口
location ~ .*/index.(php)$ {

}
#其它php文件入口直接拒绝访问
location ~* .*.(php)$ {
deny all;
}

这样可以保证,就算一句话木马被植入了,它没有执行的机会。

第二步,修改入口文件的属性,保证入口文件不被篡改。

chattr +i index.php

两步,既保证了入口文件不能被修改,又使木马文件失去了执行的机会。


以上供大家参考,不知道大家有没有更好的解决办法,欢迎一起讨论~

本文出处: https://www.toutiao.com/a6733567612988441091/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部