1、disable_functions
说明:需要禁止的危险函数名,以英文逗号分隔
例:
disable_functions = phpinfo, set_time_limit,system,exec,shell_exec,passthru,
proc_open,proc_close,proc_get_status,checkdnsrr,getmxrr,getservbyname,
getservbyport,syslog,popen,show_source,highlight_file,posix_ctermid,
posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,
posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,
posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,
posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,
posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,
posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname,dl,
socket_listen,socket_create,socket_bind,socket_accept,socket_connect,
stream_socket_server,stream_socket_accept,stream_socket_client,ftp_connect,
ftp_login,ftp_pasv,ftp_get,zlib.compress,gzopen,gzpassthru,gzcompress,
passthru,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,
ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,
popepassthu,stream_socket_srver,scandir,chgrp,chown,shell_exec,proc_open,
proc_get_status,error_log,ini_alter,ini_set,ini_restore,dl,pfsockopen,
syslog,readlink,symlink,popen,stream_socket_server,putenv
2、open_basedir
说明:需要禁止的危险函数名,以英文逗号分隔
例:
disable_functions = phpinfo, set_time_limit,system,exec,shell_exec,passthru,
proc_open,proc_close,proc_get_status,checkdnsrr,getmxrr,getservbyname,
getservbyport,syslog,popen,show_source,highlight_file,posix_ctermid,
posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,
posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,
posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,
posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,
posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,
posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname,dl,
socket_listen,socket_create,socket_bind,socket_accept,socket_connect,
stream_socket_server,stream_socket_accept,stream_socket_client,ftp_connect,
ftp_login,ftp_pasv,ftp_get,zlib.compress,gzopen,gzpassthru,gzcompress,
passthru,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,
ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,
popepassthu,stream_socket_srver,scandir,chgrp,chown,shell_exec,proc_open,
proc_get_status,error_log,ini_alter,ini_set,ini_restore,dl,pfsockopen,
syslog,readlink,symlink,popen,stream_socket_server,putenv
2、open_basedir
说明:设置web虚拟路径,路径也支持(.) [一个点] 和(..) [两个点],也就是当前目录、父目录。于是有下面的配置方法,
例:open_basedir = "/myserver/:/tmp/:/var/tmp/"
3、upload_tmp_dir
设置PHP的php.ini文件中的open_basedir项,可以限制PHP访问的范围,如open_basedir="c:/apache group/apache2/htdocs",这样就限定了PHP文件只能访问htdocs目录下的内容。我就在我的机子上试了试,发现使用该项后,我的bo-blog无法上传,提示上传成功了,但其实根本没成本,文件夹中也没有上传成功的文件。
在php.ini关于上传文件部分的设置中看到了upload_tmp_dir这个设定,PHP中说明,通过http在线上传文件的,如果不手动设置上传临时文件夹的话,就会利用操作系统的临时文件夹,因为PHP默认上传临时夹的设定项upload_tmp_dir是空值,所以如果设定了open_basedir的话,程序就无法读写系统的临时文件夹了,所以造成上传的不正常。这时可以手动指定upload_tmp_dir,或不设定open_basedir。这也是便利和安全中的抉择。
另外,open_basedir的设定也会影响某些程序的session的使用,原因同上。