http://www.cnblogs.com/samson/archive/2011/08/08/2130550.html

php安全模式:safe_mode=on|off
启用safe_mode指令将对在共享环境中使用PHP时可能有危险的语言特性有所限制。可以将safe_mode是指为布尔值on来启用,或者设置为 off禁用。它会比较执行脚本UID(用户ID)和脚本尝试访问的文件的UID,以此作为限制机制的基础。如果UID相同,则执行脚本;否则,脚本失败。
具体地,当启用安全模式时,一些限制将生效。
1、所有输入输出函数(例如fopen()、file()和require())的适用会受到限制,只能用于与调用这些函数的脚本有相同拥有者的文件。例如,假定启用了安全模式,如果Mary拥有的脚本调用fopen(),尝试打开由Jonhn拥有的一个文件,则将失败。但是,如果Mary不仅拥有调用 fopen()的脚本,还拥有fopen()所调用的文件,就会成功。
2、如果试图通过函数popen()、system()或exec()等执行脚本,只有当脚本位于safe_mode_exec_dir配置指令指定的目录才可能。
3、HTTP验证得到进一步加强,因为验证脚本用于者的UID划入验证领域范围内。此外,当启用安全模式时,不会设置PHP_AUTH。
4、如果适用MySQL数据库服务器,链接MySQL服务器所用的用户名必须与调用mysql_connect()的文件拥有者用户名相同。
安全模式和禁用的函数
下面是启用safe_mode指令时受影响的函数、变量及配置指令的完整列表:
apache_request_headers() backticks()和反引号操作符 chdir()
chgrp()     chmode()    chown()
copy()     dbase_open()    dbmopen()
dl()     exec()     filepro()
filepro_retrieve()   filepro_rowcount()   fopen()
header()    highlight_file()   ifx_*
ingres_*    link()     mail()
max_execution_time()   mkdir()     move_uploaded_file()
mysql_*     parse_ini_file()   passthru()
pg_lo_import()    popen()     posix_mkfifo()
putenv()    rename()    zmdir()
set_time_limit()   shell_exec()    show_source()
symlink()    system()    touch()

以下是一些和安全模式相关的配置选项
safe_mode_gid=on|off
次指令会修改安全模式的行为,即从执行前验证UID改为验证组ID。例如,如果Mary和John处于相同的用户组,则Mary的脚本可以对John的文件调用fopen()。
safe_mode_include_dir=string
可以使用指令safe_mode_include_dir指示多个路径,启用安全模式时在这些路径中将忽略安全模式。例如,你可以使用此函数指定一个包含不同模板的目录,致谢模板可能会继成到一些用户网站。可以指定多个目录,在基于UNIX的系统各目录用冒号分隔,在Windows中用分号分隔。
注意,如果指定某个路径但未包含最后的斜线,则该路径下的所有目录都会忽略安全模式设置。例如,如果设置次指令为/home /configuration,表示/home/configuration/templates/和/home/configureation /passwords都排除在安全模式限制之外。因此,如果只是要排除一个目录或一组目录不受安全模式设置的限制,要确保每个目录都包括最后的斜线。
safe_mode_env_vars=string
当启用安全模式时,可以只用次指令允许执行用户的脚本修改某些环境变量。可以允许修改多个变量,每个变量之间用逗号分隔。
safe_mode_exec_dir=string
次指令指定一些目录,其中的系统程序可以通过诸如system()、exec()或passthru()等函数执行。为此必须启用安全模式。此指令有一个奇怪的地方,在所有操作系统中(包括Windows),都必须使用斜线(/)作为目录的分隔符。
safe_mode_protected_env_vars=string
此指令保护某些环境变量不能被putenv()函数修改。默认情况下,变量LD_LIBRARY_PATH是受保护的,因为如果在运行时修改这个变量可能导致不可预知的结果。关于此环境变量的更多信息,请参考搜索引擎或Linux手册。注意,本届中声明的所有便来弄个都覆盖 safe_mode_allowed_env_vars指令中声明的变量。

另外,由于启用了安全模式后,由于会对比文件的拥有者和文件的执行者是否是一个人,所以会减慢执行效率。

php安全模式的更多相关文章

  1. win10进入安全模式的方法(F8不管用/开不开机)

    win10默认不能进入安全模式,这时候开机黑屏怎么办?下面介绍强制进入安全模式的方法 1. 关机情况下,按开机键开机,等到出现徽标(下图),这时候长按开机键强制关机. 2. 再次开机,出现徽标,再次强 ...

  2. Linux下的Apache和PHP安全设置,如何开启PHP的安全模式

    Linux下的Apache和PHP安全设置 PHP安全模式开启,PHP5.3将不再有安全模式. (1) safe_mode:以安全模式运行php; 在php.ini文件中使用如下 safe_mode ...

  3. MFC获取Windows启动状态(正常启动、安全模式启动、网络安全模式启动)

    UINT nFlags = GetSystemMetrics(SM_CLEANBOOT); switch(nFlags) { : AfxMessageBox(TEXT("正常启动" ...

  4. 安全模式下运行Windows installer并卸载程序

    [安全模式] 打开命令行 执行 REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\MSIServer" ...

  5. win10 进入安全模式的方法

    [收藏] 楼主 水际天成 只看他 2014-12-19 17:53:26 Windows10出问题了,无法加载了,一直停留在鼠标刚刚出现的那个界面,只能看到计算机屏幕变了颜色,然后就没有任何反映了.想 ...

  6. Java %c0%ae 安全模式绕过漏洞

    漏洞类型:安全模式绕过漏洞 漏洞描述:在Java端"%c0%ae"解析为"\uC0AE",最后转义为ASCCII低字符-".".通过这个方法 ...

  7. WCF安全3-Transport与Message安全模式

    概述: WCF的安全传输主要涉及认证.消息一致性和机密性三个主题.WCF采用两种不同的机制来解决这三个涉及传输安全的问题,一般将它们成为不同的安全模式,即Transport安全模式和Message安全 ...

  8. php利用wsh突破函数禁用执行命令(安全模式同理)

    php利用wsh突破函数禁用执行命令(安全模式同理) 前提.需要服务器支持wsh.并知道php安装目录 但是php利用wsh执行命令是没有asp的权限高的.   突破代码 <?php $cmd= ...

  9. Windows安全模式的妙用

    使用计算机的老手一定对windows安全模式不陌生,在删除病毒,卸载顽固软件,或者系统维护时,Windows的安全模式肯定会帮助很大,下面电脑技术就说说Windows安全模式的作用以及用处. wind ...

  10. 自问自答-hadoop在安全模式下究竟干了什么见不得人的事

    本来想自己从网上搜集整理的,但是发现吴超写的刚刚好,不多不少,所以直接转载(图片失效了,用自己的图片) http://www.superwu.cn/2013/08/23/548/ 在hadoop集群的 ...

随机推荐

  1. [Raobin] Ext.net 页面由于CMB的store和对图像同时执行,所以不会触发非空验证 所以会在后台直接调Js去验证

    X.Call("valid", vm.ID_EDIT_FORM); x.Call("前台的js的方法名称"," 参数为集合");

  2. 多组 RadioButtonList 获取值

    <div class="row">    <table>        <thead><tr><th>操作</th ...

  3. 华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。

    package 华为机试; //C++ 输入:由数字和字母组成的字符串,例如:333aaabb55ppin //输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的 ...

  4. 页面置换算法(最佳置换算法、FIFO置换算法、LRU置换算法、LFU置换算法)

    页面置换产生的原因是:分页请求式存储管理(它是实现虚拟存储管理的方法之一,其中一个特性是多次性-->多次将页面换入或换出内存) 效果最好的页面置换算法:最佳置换算法 比较常用的页面置换算法有:F ...

  5. zoj 2588 Burning Bridges【双连通分量求桥输出桥的编号】

    Burning Bridges Time Limit: 5 Seconds      Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...

  6. DATASNAP倒底能承受多大的负载能力

    DATASNAP是针对企业数据中间件市场而推出来的产品,如果在其它领域用它可能就不会合适. DATASNAP通信使用INDY10,INDY是阻塞型SOCKET. 1.如果使用TCP/IP长连接,DAT ...

  7. excel函数

    120.623652,31.386228 120.623652 31.386228 上面数据要分成两列数据,我用了函数 =LEFT(C4,FIND(",",C4)-1),=RIGH ...

  8. windows蓝屏代码大全及常见蓝屏解决方案

    对于以下的代码查询建议使用ctrl+F查询,而且很多蓝屏与黑屏的问题多是最近操作引起的,例如更新驱动,安装新的硬件.软件--把相关的配置调到最近的正常状况大多可以解决,确实不行时方可考虑重装系统,解决 ...

  9. weblogic目录结构

    安装WEBLOGIC SERVER weblogic server 的目录结构 weblogic server的classpath变量 weblogic server使用命令行 通过管理控制台执行核心 ...

  10. 11.编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。

    package com.hanqi.yzljs; public class yzljs { public static void main(String[] args) {     final dou ...