PHP safe_mode简介

PHP安全模式就是以安全模式运行php,safe_mode是在php.ini中设置,默认是关闭的。

; Safe Mode
; http://php.net/safe-mode
safe_mode=Off

php的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的php开放的web服务器上。

当一个web服务器上运行的php打开了安全模式,那么一些函数将被完全的禁止,并且会限制一些可用的功能。在安全模式下,一些尝试访问文件系统的函数功能将被限制。

当安全模式打开时,以下函数列表的功能将会受到限制:

chdir, move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink

同样的,一些php扩展中的函数也将会受到影响。(加载模块:在安全模式下dl函数将被禁止,如果要加载扩展的话,只能修改php.ini中的扩展选项,在php启动的时候加载)

safe_mode特性在5.3后不推荐使用,在5.4中删除。

打开或者关闭php的安全模式,在php.ini文件中配置safe_mode选项:

safe_mode=On
(使用安全模式)
safe_mode=Off
(关闭安全模式)

相关设置包括:

1. 用户组安全
safe_mode_gid = off
2. 安全模式下执行程序主目录
safe_mode_exec_dir = D:/usr/www
3. 安全模式下包含文件
safe_mode_include_dir = D:/usr/www/include/
4. 关闭危险函数
disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
5. 关闭PHP版本信息在http头的泄漏
expose_php = Off
6. 关闭注册全局变量
register_globals = Off
7. 打开magic_quotes_gpc来防止SQL注入
magic_quotes_gpc = On
8. 错误信息控制:默认关闭
display_errors = Off

如果要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:

`error_reporting = E_WARNING & E_ERROR
9. 错误日志:如果关闭错误消息,那么就要记录错误日志
log_errors = On

同时也要设置错误日志存放的目录,建议根apache的日志存在一起:

error_log = D:/usr/local/apache2/logs/php_error.log
10. 控制php脚本能访问的目录
open_basedir = D:/usr/www

注意:open_basedir并不是safe_mode的一个子功能,PHP官网中明确表示:

Limit the files that can be opened by PHP to the specified directory-tree, including the file itself. This directive is NOT affected by whether Safe Mode is turned On or Off.

即:将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本指令不受安全模式打开或者关闭的影响。

参考链接:
http://blog.csdn.net/wuhongbing987/article/details/7084650
http://www.linuxde.net/2013/04/13204.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值