从以下三点考虑:
1.apache服务的降权限
默认为系统权限 参考数据库降权的方法进行设置为低权限账户运行apache
设置后注意临时目录的读取写入权限。
2.php函数禁用
disable_functions =exec,system,passthru,popen,pclose,shell_exec,proc_open,dl,chmod
3.虚拟主机目录限制。php_admin_value open_basedir的使用。
windows下一个配置实例:
<VirtualHost *> <Directory "D:/vhosts/www.test.com"> Options -Indexes FollowSymLinks </Directory> ServerAdmin admin@www.test.com DocumentRoot "D:/vhosts/www.test.com" ServerName www.test.com ServerAlias test12355.com www123.com ErrorLog logs/www.test.com-error_log php_admin_value open_basedir "D:\vhosts\www.test.com;C:\Windows\Temp;" </VirtualHost>
linux下一个配置实例:
<VirtualHost *:88> ServerAdmin webmaster@example.com php_admin_value open_basedir "/home/wwwroot/jk.exp-db.com:/tmp/:/var/tmp/:/proc/" DocumentRoot "/home/wwwroot/jk.exp-db.com" ServerName jk.exp-db.com ErrorLog "logs/jk.exp-db.com-error_log" CustomLog "logs/jk.exp-db.com-access_log" common </VirtualHost>