Linux下的Apache和PHP安全设置
PHP安全模式开启,PHP5.3将不再有安全模式。
(1) safe_mode:以安全模式运行php;
在php.ini文件中使用如下
- safe_mode = On (使用安全模式)
- safe_mode = Off (关闭安全模式)
在apache的httpd.conf中VirtualHost的相应设置方法
- php_admin_flag safe_mode On (使用安全模式)
- php_admin_flag safe_mode Off (关闭安全模式)
或者:
- php_admin_value safe_mode 1 (使用安全模式)
- php_admin_value safe_mode 0 (关闭安全模式)
(2) safe_mode_include_dir: 无需UID/GID检查的目录;
(3) open_basedir: 将用户可操作的文件限制在某目录下;
a、在Apache的httpd.conf中Directory的相应设置方法:
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
b、在php.ini中设置open_basedir = .:/tmp/, 这个设置表示允许访问当前目录(即PHP文件所在目录)和/tmp/目录。
(4) disable_functions:设置禁用函数;
典型的安全性配置
disable_functions = shell_exec,system,exec,passthru,show_source,get_cfg_var,dl
若允许用户调试程序,则配置如下:
disable_functions = shell_exec,system,exec,passthru
(5) register_globals: 禁止注册全局变量;
- register_globals = On (自动注册为全局变量)
- register_globals = Off (不可注册为全局变量)
(6) magic_quotes_gpc: 令敏感字元转义
- magic_quotes_gpc = On
- magic_quotes_gpc = Off
在Apache的httpd.conf中VirtualHost的相应设置方法:
- php_admin_flag magic_quotes_gpc on 或者:
- php_admin_value magic_quotes_gpc 1