PHP配置文件中的disable_functions选项能够在PHP中禁用指定的函数。PHP中有很多危险的内置功能函数,如果使用不当,可造成系统崩溃。禁用函数可能会为研发带来不便,但禁用的函数太少又可能增加研发人员写出不安全代码的概率,同时为黑客非法获取服务器权限提供遍历。
在PHP配置文件中添加需要禁用的函数可以有效避免webshell。在PHP中配置如下:
disable_functions=phpinfo,eval,exec,system,chroot,shell_exec,chown……
函数名称 |
函数功能 |
危险级别 |
---|---|---|
chgrp() |
改变文件或目录所属的用户组 |
高 |
chown() |
改变文件或目录的所有者 |
高 |
chroot() |
可改变当前PHP进程的工作根目录,仅当系统支持CLI模式时PHP才能工作,且该函数不适用于Windows系统 |
高 |
dl() |
在PHP运行过程当中(而非启动时)加载一个PHP外部模块 |
高 |
exec() |
允许执行一个外部程序(如UNIX Shell或CMD命令等) |
高 |
ini_alter() |
时ini_set()函数的一个别名函数,功能与ini_set()相同 |
高 |
ini_restore() |
可用于将PHP环境配置参数恢复为初始值 |
高 |
ini_set() |
可用于修改、设置PHP环境配置参数 |
高 |
passthru() |
允许执行一个外部程序并回显输出,类似于exec() |
高 |
pfsockopen() |
建立一个Internet或UNIX域的socket持久连接 |
高 |
phpinfo() |
输出PHP环境信息以及相关的模块、web环境等信息 |
高 |
popen() |
可通过popen()的参数传递一条命令,并对popen()所打开的文件进行执行 |
高 |
proc_get_status() |
获取使用proc_open()所打开进程的信息 |
高 |
proc_open() |
执行一个命令并打开文件指针用于读取以及写入 |
高 |
putenv() |
用于在PHP运行时改变系统字符集环境。在低于5.2.6版本的PHP中,可利用该函数。修改系统字符集环境后,利用sendmail指令发送特殊参数执行系统Shell命令 |
高 |
shell_exec() |
可通过Shell执行命令,并将执行结果作为字符串返回 |
高 |
symlink() |
对已有的target建立一个名为link的符号链接 |
高 |
system() |
允许执行一个外部程序并回显输出,类型于passthru() |
高 |
readlink() |
返回符号连接指向的目标文件内容 |
中 |
scandir() |
列出指定路径中的文件和目录 |
中 |
stream_socket_server() |
建立一个Internet或UNIX服务器连接 |
中 |
syslog() |
可调用UNIX系统的系统层syslog()函数 |
中 |
暂无评论内容