PHP中有一些函数在开发环境中比较实用,但是在生产环境中会给服务器安全带来较大的威胁,但是我们可以使用disable_functions去禁用,增加服务器的安全性.

这边是一些可以禁用的函数:

* 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() 所打开进程的信息
* 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 命令

禁用函数的方法:

修改php.ini配置文件

执行命令:vi /usr/local/webserver/php/etc/php.ini

找到disable_functions

disable_functions = 后面增加函数名称,多个以逗号隔开

disable_functions = phpinfo,exec,chroot,putenv

修改完成之后重启服务即可..