php语言无需编译,动态执行,我们不得不钦佩它的开发效率。但正由于可以动态执行,才带来了相似一句话木马等安全疑问。由于我们要十分警觉,否则,无论做的再好,都将“满盘皆输”。
首选,我们要先弄清晰,一句话木马是如何被植入到系统的,根本存在通过一下几种方式: 1、应用sql注入。 sql注入可以通过mysql pdo的预处置来解决。 2、应用配置上传的破绽 仿造一张图片,其实是可执行的代码,然后仿造一条地址,相似phpnetfoojpgaphp。当 phpini 中 cgifix_pathinfo = 1 时,PHP CGI 以 为分隔符号从后向前依次查验如下路径,直到找个某个存在的文件,假如这个文件是个非法的文件,so… 悲剧了~。所以对于采用php-fpm06的务必关闭关闭该选项,设置 cgifix_pathinfo = 0。 3、应用php框架的破绽 就比如之前thinkphp暴露出来的一样,没有对controller进行正则判断,结局就被应用了,“黑客”应用该破绽,传输一个函数名字,管理后台执行该函数,假如该该函数为file_put_contents,一句话木马:?php eval($_POST[value]);?就很容易被植入到服务器上。剩下的就不用说了。 那么我们该怎么防止呢?其实无论我们有多提防,还是无法百分百确保安全。在这里我提供一种简朴有效的想法供大家参考。 第一步,固定PHP的拜访进口,网站唯一请愿进口 假如是indexphp,nginx的配置如下: 这样可以保证,就算一句话木马被植入了,它没有执行的时机。 第二步,改动进口文件的属性,保证进口文件不被篡改。 chattr +i indexphp 两步,既保证了进口文件不能被改动,又使木马文件失去了执行的时机。
只许可index进口
location~*index\(php)${
}
其它php文件进口直接谢绝拜访
location~**\(php)${
denyall;
}