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
修改完成之后重启服务即可..