`
dcj3sjt126com
  • 浏览: 1825070 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php安全模式详细介绍

阅读更多

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 COM组件调用绕过安全模式执行任意文件漏洞

    Windows平台下的PHP脚本平台存在一个安全漏洞,使得PHP设置即使在安全模式下(safe_mode),仍旧允许攻击者使用COM()函数来创建系统组件来执行任意命令。漏洞出现的原因是由于在安全模式下的PHP平台虽然system()...

    php.ini安全配置

     php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),  同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,  但是默认的php.ini是没有...

    php中安全模式safe_mode配置教程

    (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(), 同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd, ...

    Learning+PHP设计模式

    通过学习如何在代码中使用设计模式,可以更高效地构建服务器端应用,在这个...第11章 通用类负责连接,代理模式保证安全 第12章 策略设计模式的灵活性 第13章 职责链设计模式 第14章 利用观察者模式构建多设备CMS

    phpMyBatis安全框架[dMapper],phpMVC框架,支持数据库单例模式和多例模式【更新】

    支持数据库单例模式和多例模式,sql文件写在xml中阅读性和维护性都很好,只需要将sql的xml文件交给DBA,DBA即可很轻松的维护,完全脱离了在php文件中写sql语句,数据库类采用了PDO技术,sql参数采用绑定的方式,有效...

    【更新】phpMyBatis安全框架[dMapper],phpMVC框架,支持数据库单例模式和多例模式

    支持数据库单例模式和多例模式,sql文件写在xml中阅读性和维护性都很好,只需要将sql的xml文件交给DBA,DBA即可很轻松的维护,完全脱离了在php文件中写sql语句,数据库类采用了PDO技术,sql参数采用绑定的方式,有效...

    PHP安全配置详细说明

     PHP的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的PHP开放的Web服务器上。当一个Web服务器上运行的PHP打开了安全模式,那么一些函数将被完全的禁止,并且会限制一些可用的功能。  [ 使用安全...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程53:PHP如何防止注入及开发安全 PHP100视频教程54:Apache Rewrite 拟静态配置 PHP100视频教程55:PHP5中使用PDO连接数据库 PHP100视频教程56:制作PHP安装程序的原理和步骤 PHP100视频教程57:...

    PHP环境安全加固1

    下面讲解如何使用php的安全功能来保护网站的安全性:一.启用php的安全模式php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如sys

    PHP安全漏洞

    此文档是相关的PHP函数漏洞的安全作出的详细分析,这也是大家以后会碰到的一些常用函数

    使用php PDO 鏈接數據庫,高安全性

    絕對好用的mysql鏈接類庫,只要include即可使用 使用方便,只需要 include 文件 代碼示範: $db = new Db; $db->query('SELECT * FROM table WHERE field = :field LIMIT 1');...$db->bind(':field', 'field');...

    php5技巧集-从魔兽看PHP设计模式

    用SSH与PHP相连接 确保数据传输的安全性 从魔兽看PHP设计模式 Fedora下Zend Studio 6.1.2 的配置 微软对PHP支持的改进 及其它一些胡言乱语 php生成静态页面的办法 PHP绘制3D图形之自定义图形及矢量图

    钜码培训课程之php开发中原型模式的实现方法介绍.docx

    钜码培训课程之php开发中原型模式的实现方法介绍.docx

    基于MVC模式的轻量级Z-PHP框架设计源码

    本项目是基于MVC模式的轻量级Z-PHP框架设计源码,主要使用PHP进行开发。项目共包含25个文件,其中PHP源代码文件21个,Git忽略配置文件gitignore 1个,项目许可证文件LICENSE 1个,Markdown文档文件md 1个,以及TTF...

    php设计模式之单例模式_.docx

    php设计模式之单例模式_.docx

    php设计模式之单例模式代码_.docx

    php设计模式之单例模式代码_.docx

    php用户注册系统

    简单的PHP连接数据库的用户注册系统。 很简单没有其他安全模式,小白程序

    php设计模式之单例模式实例分析_.docx

    php设计模式之单例模式实例分析_.docx

    PHP设计模式之单例模式__1.docx

    PHP设计模式之单例模式__1.docx

    细说PHP(第2版)

    PHP是开发Web应用系统...最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板,基于BroPHP框架的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,便于更好地进行开发实践。

Global site tag (gtag.js) - Google Analytics