您现在的位置是:首页 >学无止境 >Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁网站首页学无止境
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,如有宝塔直接在禁用函数处删除。