Linux下的Apache与PHP安全设置技巧

(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

参与评论