保安措施和安全模式

保安措施和安全模式配置指令
名字默认可修改范围更新日志
safe_mode"0"PHP_INI_SYSTEM
safe_mode_gid"0"PHP_INI_SYSTEM自 PHP 4.1.0 起可用,在 PHP 5.4.0 中移除。
safe_mode_include_dirNULLPHP_INI_SYSTEM自 PHP 4.1.0 起可用
safe_mode_exec_dir""PHP_INI_SYSTEM
safe_mode_allowed_env_vars"PHP_"PHP_INI_SYSTEM
safe_mode_protected_env_vars"LD_LIBRARY_PATH"PHP_INI_SYSTEM

有关 PHP_INI_* 样式的更多详情与定义,见 配置可被设定范围。

这是配置指令的简短说明。

  • safe_mode       boolean      

  • 是否启用 PHP 的安全模式。

  • safe_mode_gid       boolean      

  • 默认情况下,安全模式在打开文件时会做 UID 比较检查。如果想将其放宽到        GID 比较,则打开 safe_mode_gid。是否在文件访问时使用        UID(FALSE)或者        GID(TRUE)来做检查。

  • safe_mode_include_dir       string      

  • 当从此目录及其子目录(目录必须在 include_path        中或者用完整路径来包含)包含文件时越过        UID/GID 检查。

          从 PHP 4.2.0 开始,本指令可以接受和 include_path        指令类似的风格用冒号(Windows 中是分号)隔开的路径,而不只是一个目录。                   指定的限制实际上是一个前缀,而非一个目录名。这也就是说“safe_mode_include_dir       = /dir/incl”将允许访问“/dir/include”和“/dir/incls”,如果它们存在的话。如果希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:“safe_mode_include_dir       = /dir/incl/”。                   如果本指令的值为空,在 PHP 4.2.3 中以及 PHP 4.3.3 起具有不同        UID/GID        的文件将不能被包含。在较早版本中,所有文件都能被包含。            

  • safe_mode_exec_dir       string      

  • 如果 PHP 使用了安全模式, system() 和其它程序执行函数将拒绝启动不在此目录中的程序。必须使用        / 作为目录分隔符,包括 Windows 中。

  • safe_mode_allowed_env_vars       string      

  • 设置某些环境变量可能是潜在的安全缺口。本指令包含有一个逗号分隔的前缀列表。在安全模式下,用户只能改变那些名字具有在这里提供的前缀的环境变量。默认情况下,用户只能设置以        PHP_ 开头的环境变量(例如 PHP_FOO = BAR)。

    Note:

    如果本指令为空,PHP 将使用户可以修改任何环境变量!

  • safe_mode_protected_env_vars       string      

  • 本指令包含有一个逗号分隔的环境变量的列表,最终用户不能用         putenv() 来改变这些环境变量。甚至在        safe_mode_allowed_env_vars 中设置了允许修改时也不能改变这些变量。

参见 open_basedir、     disable_functions、     disable_classes、     register_globals、     display_errors 和     log_errors。

当 safe_mode 设置为 on,PHP    将通过文件函数或其目录检查当前脚本的拥有者是否和将被操作的文件的拥有者相匹配。例如:

-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd

运行script.php

<?php readfile('/etc/passwd');?>  

如果安全模式被激活,则将会导致以下错误:

Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

同时,或许会存在这样的环境,在该环境下,宽松的 GID    检查已经足够,但严格的 UID    检查反而是不适合的。可以用 safe_mode_gid    选项来控制这种检查。如果设置为 On    则进行宽松的 GID 检查;设置为    Off(默认值)则进行 UID 检查。

除了 safe_mode 以外,如果设置了    open_basedir    选项,则所有的文件操作将被限制在指定的目录下。例如:

<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>

如果在设置了 open_basedir    选项后运行同样的script.php,则其结果会是:

Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

也可以单独地屏蔽某些函数。请注意    disable_functions    选项不能在php.ini文件外部使用,也就是说无法在httpd.conf文件的按不同虚拟主机或不同目录的方式来屏蔽函数。如果将如下内容加入到php.ini文件:

disable_functions readfile,system

则会得到如下的输出:

Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2
Warning    

当然,这些 PHP 限制不适用于可执行文件。 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

触发修改文章时间【fastadmincms开发记录】|fastadmincms二次开发,触发,修改,文章,时间,fastadmin,ms,开发,记录
触发修改文章时间【fastadmincms开发记录】
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】|fastadmincms二次开发,在tp5中,过滤,输入,的零,宽度,字符,fastadmin,ms,开发,记录
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】
处理tag标签中的0宽空格【fastadmincms开发记录】|fastadmincms二次开发,处理,tag,标签,中的,0宽,空格,fastadmin,ms,开发,记录
处理tag标签中的0宽空格【fastadmincms开发记录】
添加专题时tags标签id出错【fastadmincms开发记录】|fastadmincms二次开发,添加,专题,时tags,标签,id,出错,fastadmin,ms,开发,记录
添加专题时tags标签id出错【fastadmincms开发记录】
20230518----模板 广告【fastadmincms开发记录】|fastadmincms二次开发,20230518,模板,广告,fastadmin,ms,开发,记录
20230518----模板 广告【fastadmincms开发记录】
cms添加视频模型【fastadmincms开发记录】|fastadmincms二次开发,ms,添加,视频,模型,fastadmin,开发,记录
cms添加视频模型【fastadmincms开发记录】
新增单篇收费复制功能【fastadmincms开发记录】|fastadmincms二次开发,新增,单篇,收费,复制,功能,fastadmin,ms,开发,记录
新增单篇收费复制功能【fastadmincms开发记录】
添加开会员折扣功能【fastadmincms开发记录】|fastadmincms二次开发,添加,开会,折扣,功能,fastadmin,ms,开发,记录
添加开会员折扣功能【fastadmincms开发记录】

历史上的今天:05月03日

热门专题

天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部