如何应对禁用exec函数后的PHP命令执行漏洞及加固措施?

2026-04-29 12:301阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计967个文字,预计阅读时间需要4分钟。

如何应对禁用exec函数后的PHP命令执行漏洞及加固措施?

当Web服务器运行PHP环境时,直接修改主配置文件php.ini可一次性阻止exec及其同类函数被调用,适用于所有PHP进程,无需修改业务代码即可切断多数RCE输入。

1、使用文本编辑器打开php.ini文件,典型路径包括/etc/php/8.2/apache2/php.ini或/usr/local/php/etc/php.ini。

2、搜索disable_functions配置项,若该行以分号开头则删除分号取消注释。

3、在disable_functions = 后追加exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,多个函数间严格使用英文逗号分隔,注意不可添加空格

立即学习“PHP免费学习笔记(深入)”;

4、保存文件后执行systemctl restart apache2或systemctl restart php8.2-fpm,使配置立即生效。

二、利用open_basedir限制文件操作边界

即使exec等函数已被禁用,攻击者仍可能借助文件包含、临时目录写入或符号链接等方式实现跨目录访问,open_basedir能强制将所有文件类操作约束在指定路径内,形成第二道隔离屏障。

1、在php.ini中定位open_basedir指令,若不存在则新增一行。

2、设置其值为网站根目录与必需临时路径的组合,例如:/var/www/html:/tmp:/var/tmp

3、确保各路径之间使用冒号分隔,且末尾不带斜杠,避免因路径匹配失败导致功能异常。

阅读全文
标签:PHP

本文共计967个文字,预计阅读时间需要4分钟。

如何应对禁用exec函数后的PHP命令执行漏洞及加固措施?

当Web服务器运行PHP环境时,直接修改主配置文件php.ini可一次性阻止exec及其同类函数被调用,适用于所有PHP进程,无需修改业务代码即可切断多数RCE输入。

1、使用文本编辑器打开php.ini文件,典型路径包括/etc/php/8.2/apache2/php.ini或/usr/local/php/etc/php.ini。

2、搜索disable_functions配置项,若该行以分号开头则删除分号取消注释。

3、在disable_functions = 后追加exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,多个函数间严格使用英文逗号分隔,注意不可添加空格

立即学习“PHP免费学习笔记(深入)”;

4、保存文件后执行systemctl restart apache2或systemctl restart php8.2-fpm,使配置立即生效。

二、利用open_basedir限制文件操作边界

即使exec等函数已被禁用,攻击者仍可能借助文件包含、临时目录写入或符号链接等方式实现跨目录访问,open_basedir能强制将所有文件类操作约束在指定路径内,形成第二道隔离屏障。

1、在php.ini中定位open_basedir指令,若不存在则新增一行。

2、设置其值为网站根目录与必需临时路径的组合,例如:/var/www/html:/tmp:/var/tmp

3、确保各路径之间使用冒号分隔,且末尾不带斜杠,避免因路径匹配失败导致功能异常。

阅读全文
标签:PHP