1.防止跳出web目录。
首先修改httpd.conf,如果只允许你的php脚本在web目录下运行,也可以修改httpd.conf文件来限制php的运行路径。
例如,如果您的web目录是/usr/local/apache/htdocs,请将这些行添加到httpd.conf:
php_admin_value open_basedir /usr/local/apache
/htdocs
这样,如果脚本想读取/usr/local/apache/htdocs以外的文件,就不被允许。如果打开了错误显示,它会提示这样一个错误:
Warning: open_basedir restriction in effect. File is in wrong directory in
/usr/local/apache/htdocs/open.php on line 4
等一下。
2.防止php木马执行webshell。
Turn on safe mode,
设置在php.ini中
disable_functions=passthru,exec,shell_exec,system
你可以选择一个或两个都选。
3.防止php木马读写文件目录
在php.ini中。
disable_functions=passthru,exec,shell_exec,system
添加php的函数来处理文件。
主要包括
fopen,mkdir,rmdir,chmod,unlink,dir
fopen,fread,fclose,fwrite,file_exists
closedir,is_dir,readdir.opendir
fileperms.copy,unlink,delfile
成为
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
好了,你完成了。php木马拿我们没办法。可惜这种情况下,那些使用文本数据库的东西就不能用了。
如果apache建立在windos平台上,我们需要注意一点。apache默认用系统权限运行,很恐怖,让人感觉不舒服。那我们就降级apache权限吧。
net user apache fuckmicrosoft /add
net localgroup users apache /del
好的。我们已经建立了一个不属于任何组的用户apche。
我们打开计算机管理器,选择服务,然后单击apache服务的属性。我们选择登录,选择这个帐户,填写上面建立的帐户和密码,并重新启动apache服务。好吧,阿帕奇在低权限下运行。
其实我们也可以设置每个文件夹的权限,让apache用户只能做我们想让他们做的事情,建立一个单独的用户,可以对每个目录进行读写。这也是目前很多虚拟主机提供商比较流行的配置方式。
不过这里用这个方法是为了防止有点大材小用。