防PHP木马之内部函数的作用.
实施环境:支持并运行PHP的各类操作系统
实施方法:通过对PHP的核心配置文件PHP.ini的修改,禁用一些功能强大的内部函数!好了,我们开始行动吧!
第一步:打开php.ini文件(windows默认路径为”%systemroot%php.ini”,linux默认路径在”etc/php.ini”).
第二步:找到”safe_mode=off”改为”safe_mode=on”(已经打开的省略此步)
第三步:找到”disable_functions=”改为:”disable_functions=phpinfo,system,exec,passthru,shell_exec,popen,is_dir”.
第四步:找到”display_errors=on”改为”display_errors=off”
第五步:保存退出.
说明:php安全模式(safe_mode)打开后,”disable_functions=”后跟的全部都是被禁用的PHP内部函数.”phpinfo”这个函数并不是为防止PHP木马而禁用的.但它能返回所有的PHP基本信息,建议关闭以绝后患,”system,exec,passthru,shell_exec,popen,” 这些属于命令执行类函数,关闭他们可以防止PHP木马执行webshell;”is_dir”这个函数的关闭,可以让既使有everyone可读的权限, 也无法将服务器目录及文件名返回到浏览器.但此时PHP的错误提示会告诉你是因为哪些函数出错造的.所以我们还要关掉错误提示,就是我们的第四步,这样下来
那些一般的工具黑客就会以为没有权限而放弃!
个人意见:我发现网络广为转贴的一篇防PHP木马文章里把关闭的特定函数设
为”disable_functions=passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir,fopen,fread,fclose,fwrite,file_exists,closedir,is_dir,readdir,opendir,fileperms.copy,unlink,delfile”,首先我对delfile也被列为被禁用的PHP函数打了一个超大的问号.再一个,PHP本身就是以提供了大量的函数,实现某功能比较容易而受到了很多PHP编程者欢迎.如果禁掉这么多函数,以文本数据库运行的留言本,论坛等等都无法正常使用运行.
木马是禁止了,PHP的能力也损失了,怕是很多客户也只能离这个虚拟主机而去了.
所以我其实连is_dir都不舍得关掉.我更喜欢只关才phpinfo,system,exec,passthru,shell-exec,popen,然后配以正确的权限设置比较有效.