PHP safe_mode开启对于PHP系统函数有什么影响

safe_mode是提供一个基本安全的共享环境。

在一个多用户共享的phpweb服务器上,当这台服务器开启了safe_mode模式,有以下函数将会受到影响。

首先,以下尝试访问文件系统的函数将会被限制,运行服务器的用户id,如果想要尝试操作某个文件,必须要用户该文件的读取或者写入的访问权限。

因此,在safe_mode打开的情况下,下列函数将会收到限制:

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

以上都是跟操作文件系统有关的函数。

除此之外,一些php扩展的函数也会受到限制,不能在程序里面直接加载扩展,只能到php.ini里加载,而且php如果需要执行操作系统的程序时,必须在safe_mode_exec_dir中指定程序的路径,否则执行将失败。

此外还有

  • exec,
  • shell_exec,
  • pasathru,
  • system,
  • popen等函数会收到限制

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

在php安全模式打开的时候,需要执行系统程序的时候,必须是在safe_mode_exec_dir选项指定目录的程序,否则执行将失败。即使允许执行,那么也会自动的传递给escapeshellcmd函数进行过滤。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PHP date()函数警告: It is not safe to rely on the system解决方法

    近来总是有系统邮件提示,开始没在意,后来不断提示就看了一下.提示以下信息 复制代码 代码如下: PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of t

  • php5 non-thread-safe和thread-safe这两个版本的区别分析

    先从字面意思上理解,None-Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查:Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源. 再来看PHP的两种执行方式:ISAPI和FastCGI.FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执

  • sourcesafe管理phpproj文件的补充说明(downmoon)

    后来发现sourcesafe管理界面,(Admin登录),tools--Options--File Types--File Group--Add "PHP"--"*.php;*.phpproj;*.sln" 问题好像没有完全解决,但出错的机率少了! 有没有更好的办法?

  • PHP3 safe_mode 失效漏洞

    受影响的系统:  PHP 3.00  -------------------------------------------------------------------------------- 描述: PHP Version 3.0是一个HTML嵌入式脚本语言.其大多数语法移植于C.Java和Perl并结合了 PHP的特色.这个语言可以让web开发者快速创建动态网页. 因其执行在web服务器上并允许用户执行代码,PHP内置了称为'safe_mode'的安全特性, 用于控制在允许PHP操作的

  • PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析

    一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先. 一.如何选择 PHP5.3 的 VC9 版本和 VC6 版本 VC6 版本是使用 Visual Studio 6

  • 解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思

    PHP现在推出5.3.0版本了,不过下载的时候有几个不同版本选择.那就是VC6 X86和VC9 X86.首先我来解答: VC6是什么?VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的. VC9是什么?VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的.那我们如何选择下载哪个版本的PHP呢?如果你是在windows下使用Apache+PHP的,请选择VC6版本:如果你是在windows下使用IIS

  • php中安全模式safe_mode配置教程

    (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(), 同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd, 但是默认的php.ini是没有打开安全模式的,我们把它打开: safe_mode = on (2) 用户组安全 当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同 组的用户也能够对文件进行访问. 建议设置为: safe_

  • 解决php的“It is not safe to rely on the system’s timezone settings”问题

    如果使用PHP5.3以上版本时,如果没有正确的配置php.ini就会出现PHP日期函数的错误.以前很多旧的PHP编程教程没有说到这个问题,所以不少读者会觉得困惑,下面笔者为大家讲述解决这个问题的三种方法. "PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date. timezone settin

  • PHP错误提示It is not safe to rely on the system……的解决方法

    在php程序开发中有时会出现类似于这样的警告: PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are

  • PHP safe_mode开启对于PHP系统函数有什么影响

    safe_mode是提供一个基本安全的共享环境. 在一个多用户共享的phpweb服务器上,当这台服务器开启了safe_mode模式,有以下函数将会受到影响. 首先,以下尝试访问文件系统的函数将会被限制,运行服务器的用户id,如果想要尝试操作某个文件,必须要用户该文件的读取或者写入的访问权限. 因此,在safe_mode打开的情况下,下列函数将会收到限制: ckdir, move_uploaded_file, chgrp, parse_ini_file, chown,rmdir, copy, re

  • perl 常用系统函数列表

    常用系统函数列表 指令:print语法:print Filehandle LIST说明:这个Filehandle可以看作在I(INPUT)/O(OUTPUT)之间的一个桥梁,可以利用FILEHANDLE来做出数据读入写出的动作.STDIN是代表从哪连输入数据,例如从电脑的键盘输入;STDOUT是代表从哪连输出数据;例如从电脑的屏幕输出;STDERR是代表从哪连输出错误的数据,例如从电脑的屏幕输出.而在PERL语言中有三个标准FILEHANDLE: 1.STDIN(标准输入):是代表STDIN的F

  • js常用系统函数用法实例分析

    本文实例讲述了js常用系统函数用法.分享给大家供大家参考. 具体代码如下: 复制代码 代码如下: <html> <head> </head> <body> <script type="text/javascript"> //1. escape()函数,把字符串转成各计算机平台通用的unicode编码:解码(转回去)则用enescape(). var str = '王美人'; document.write(escape(str)

  • PHP类和对象相关系统函数与运算符小结

    本文总结了PHP类和对象相关系统函数与运算符.分享给大家供大家参考,具体如下: 系统函数 class_exists() 判断某个类是否存在 interface_exists() 判断接口是否存在 get_class() / __CLASS__ 获取某个对象所处的类名 get_parent_class() 获取某个对象所属父类的类名 get_class_methods() 获取一个类所有方法,返回索引数组 get_class_vars() 获取一个类所有属性,下标为属性名 get_declared

  • iOS安全防护系列之字符串及系统函数隐藏详解

    前言 用hopper打开macho文件可以看出你具体函数跳转与字符串的使用,那么在项目中,你的加密Key就容易泄漏,你使用的加密方法如果是系统的,那么可以被fishhook给hook住,所以字符串和系统方法的隐藏可以作为安全防护的一环. 一 字符串加密 如果你使用对称加密,你的秘钥很可能被macho文件暴露 要想字符串不进常量区,可以先用一个字符去异或,然后再异或回来,字符串直接换算,就不会被macho暴露. //测试环境 static NSString * KEY(){ unsigned ch

  • JS中注入eval, Function等系统函数截获动态代码

    现在很多网站都上了各种前端反爬手段,无论手段如何,最重要的是要把包含反爬手段的前端javascript代码加密隐藏起来,然后在运行时实时解密动态执行. 动态执行js代码无非两种方法,即eval和Function.那么,不管网站加密代码写的多牛,我们只要将这两个方法hook住,即可获取到解密后的可执行js代码. 注意,有些网站会检测eval和Function这两个方法是否原生,因此需要一些小花招来忽悠过去. 挂钩代码 首先是eval的挂钩代码: (function() { if (window._

  • SQL Server系统函数介绍

    一.常用函数: APP_NAME: 返回当前会话的应用程序名称(如果应用程序进行了设置). SELECT APP_NAME() COALESCE: 返回其参数中第一个非空表达式 SELECT COALESCE(NULL,NULL,123,NULL) COL_LENGTH(table,column):返回table表中column字段的长度: SELECT COL_LENGTH('person','gender'),COL_LENGTH('person','FirstName'); COL_NAM

  • ORACLE 系统函数大全SQLSERVER系统函数的异同

    字符函数 下面是Oracle支持的字符函数和它们的Microsoft SQL Server等价函数. 函数 Oracle Microsoft SQL Server 把字符转换为ASCII :ASCII ASCII 字串连接: CONCAT --------------(expression + expression) 把ASCII转换为字符 CHR, CHAR 返回字符串中的开始字符(左起) INSTR ,---------------CHARINDEX 把字符转换为小写 LOWER -----

  • php 常用的系统函数

    字符串函数 strlen:获取字符串长度,字节长度 substr:字符串截取,获取字符串(按照字节进行截取) strchr:与substr相似,从指定位置截取一直到最后 strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符 strtolower:所有的字符都小写(针对英文字母) strtoupper:所有的字符都大写 strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转 strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找

  • PHP中函数gzuncompress无法使用的解决方法

    前言 gzuncompress函数不是php自带的系统函数而是一个插件函数了所以要使用 gzuncompress函数我们必须安装一个插件,下面来看看PHP函数gzuncompress无法使用的问题解决办法吧. 一.解决过程 1.gzuncompress函数需要zlib支持才可以正常使用 2.可以使用探针检查当前php版本中是否已经开启了该函数 3.解决方式,额外编译php,安装zlib组件 二.解决步骤 1.开发环境为centos6.5 bit php5.3 2.参考代码(不可以直接拿去用,请思

随机推荐