您现在的位置是:首页 >学无止境 >Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁网站首页学无止境

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁

~央千澈~ 2024-06-17 10:48:24
简介Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结,优雅草松鼠蜻蜓系统安装必须开启proc_open,putenv,但是希望大家在安装完成后一定要禁用。

必须禁用的高危函数:

system,exec,passthru,shell_exec,popen,proc_open,putenv

分别说说这几个函数:

php提供了system(),exec(),passthru()这几个函数来调用外部的命令.

区别:
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码

shell_exec()

功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。

proc_open()

功能描述:执行一个命令并打开文件指针用于读取以及写入。

关于putenv函数

在PHP中可以查看的环境变量包括:

电脑环境变量

服务器环境变量

getenv()函数获取一个环境变量的值.参数1是环境变量的key,参数2值为true的时候仅从你的电脑环境变量中查找,参数2值为false会从两种变量中全部查询

//获取我电脑登录的用户名,输出Administrator
$username = getenv('USERNAME');
var_dump($username);

putenv()函数设置环境变量的值,设置后新增到服务器环境变量

//设置环境变量PHPUSERNAME的值为gaojiufeng
putenv('PHPUSERNAME=gaojiufeng');

禁用方法:

1,编辑php.ini

【disable_functions】

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv

在后面添加这几项即可。

2,如有宝塔直接在禁用函数处删除。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。