PHP有好多的函数,有些函数很不安全,所以我们有必要禁掉。
那么哪些函数很危险呢。
phpinfo()
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中
passthru()
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。
危险等级:高
exec()
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
危险等级:高
system()
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。
危险等级:高
chroot()
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式
PHP 时才能工作,且该函数不适用于 Windows 系统。
危险等级:高
scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中
chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高
chown()
功能描述:改变文件或目录的所有者。
危险等级:高
shell_exec()
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高
proc_open()
功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高
proc_get_status()
功能描述:获取使用 proc_open() 所打开进程的信息。
危险等级:高
error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,
执行任意命令。
危险等级:低
ini_alter()
功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。
具体参见 ini_set()。
危险等级:高
ini_set()
功能描述:可用于修改、设置 PHP 环境配置参数。
危险等级:高
ini_restore()
功能描述:可用于恢复 PHP 环境配置参数到其初始值。
危险等级:高
dl()
功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。
危险等级:高
pfsockopen()
功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。
危险等级:高
syslog()
功能描述:可调用 UNIX 系统的系统层 syslog() 函数。
危险等级:中
readlink()
功能描述:返回符号连接指向的目标文件内容。
危险等级:中
symlink()
功能描述:在 UNIX 系统中建立一个符号链接。
危险等级:高
popen()
功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
危险等级:高
stream_socket_server()
功能描述:建立一个 Internet 或 UNIX 服务器连接。
危险等级:中
putenv()
功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5.2.6 版本的 PHP 中,可利用该函数
修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。
危险等级:高
在vim /usr/local/php/etc/php.ini
disable_function=phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
php.ini中最好禁止的一些函数(diables
时间: 2024-10-03 00:26:12
php.ini中最好禁止的一些函数(diables的相关文章
php.ini中的php-5.2.0配置指令详解_php技巧
;; 关于php.ini ;; 这个文件必须命名为'php.ini'并放置在httpd.conf中的PHPIniDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co ;;;;;;;;;;;; ;; 语法 ;; ;;
用CB在WIN.INI中保存信息
现在许多软件把程序中需要的数据保存在注册表中,这样当用户装的软件越来越多时,致使注册表越来越庞大,容易使系统出错.当然,微软也建议在注册表中保存数据,但当我们需要保存的数据不多时完全可以把数据保存在WIN.INI中,这样可以很方便地维护,实现方法相对来说比较简单.下面我以Borland C++ Builder为例来说说如何实现. 原理其实很简单,只需调用API的 WriteProfileString和GetProfileInt函数就可以了.这两个函数的原型是:BOOL WriteProfileS
用C++ Bulider在WIN.INI中保存信息
现在许多软件把程序中需要的数据保存在注册表中,这样当用户装的软件越来越多时,致使注册表越来越庞大,容易使系统出错.当然,微软也建议在注册表中保存数据,但当我们需要保存的数据不多时完全可以把数据保存在WIN.INI中,这样可以很方便地维护,实现方法相对来说比较简单.下面我以Borland C++ Builder为例来说说如何实现. 原理其实很简单,只需调用API的 WriteProfileString和GetProfileInt函数就可以了.这两个函数的原型是:BOOL WriteProfileS
c++-关于C++中文件输入输出流作为函数参数传递的问题
问题描述 关于C++中文件输入输出流作为函数参数传递的问题 今天学习C++输入输出流的时候,遇到一个问题,先贴代码: void foutput (ofstream &fout, int m) { for (int i=1;i<=m;i++) { fout << i*i+0.5; } } 上面这个函数的参数中用了一个ofstream类的变量,在下面使用的时候就发现不能直接把ofstream类的实体用到函数中,编译会出错.然后,我把"ofstream fout"变
PHP中常用的字符串格式化函数总结_php技巧
字符串的格式化就是将字符串处理为某种特定的格式.通常用户从表单中提交给服务器的数据都是字符串的形式,为了达到期望的输出效果,就需要按照一定的格式处理这些字符串后再去使用.经常见到的字符串格式化函数如下图所示: 注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表单输入数据时,经常在无意中会多输入一些无意义的空格.因此PHP脚本在接收到通过表单处理过来
php.ini中output_buffering详解
php output_buffering 默认情况下,php buffer是开启的,而且该buffer默认值是4096,即4kb.你可以通过在php.ini配置文件中找到output_buffering配置.当echo,print等输出用户数据的时候,输出数据都会写入到php output_buffering中,直到output_buffering写满,会将这些数据通过tcp传送给浏览器显示.你也可以通过ob_start()手动激活php output_buffering机制,使得即便输出超过了
php中采集抓取页面函数详解
1. file()函数 file() 函数把整个文件读入一个数组中. 与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回.数组中的每个单元都是文件中相应的一行,包括换行符在内. 如果失败,则返回 false. 代码如下 复制代码 <?php $url='http://www.111cn.net'; $lines_array=file($url); $lines_string=implode('',$lines_array); echo htmlsp
php需要禁止一些危险函数
phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息. 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等). 危险等级:高 system() 功能描述:允许执行一个外部程序并回显输出,类似于 passthru(). 危险等级:高 chroot() 功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持
php中上传图片文件的PHP函数
编程环境 PHP5.2.4,基本上PHP4.3以上版本,此代码都可以使用 准备工作 检查upload_tmp_dir项 如果PHP的开发环境是自行搭建的,你需要在编写文件上传程序前编辑php.ini文件,找到并编辑upload_tmp_dir选项,此项用来设定文件上传至服务器时的临时文件夹,比如upload_tmp_dir = E:/phpos/uploads,然后再重启Apache.如果PHP的开发环境使用的是傻瓜式一键安装包,一般upload_tmp_dir都是设定好了的,你也可以用phpi