首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP建议禁用的危险函数

PHP建议禁用的危险函数

作者头像
Petrochor
发布于 2022-06-07 15:39:26
发布于 2022-06-07 15:39:26
1.9K0
举报
文章被收录于专栏:StephenStephen

PHP配置文件中的disable_functions选项能够在PHP中禁用指定的函数。PHP中有很多危险的内置功能函数,如果使用不当,可造成系统崩溃。禁用函数可能会为研发带来不便,但禁用的函数太少又可能增加研发人员写出不安全代码的概率,同时为黑客非法获取服务器权限提供遍历。

在PHP配置文件中添加需要禁用的函数可以有效避免webshell。在PHP中配置如下:

代码语言:javascript
复制
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()函数

中

参考:《PHP安全配置》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档