加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP Shell_exec仅适用于某些命令

发布时间:2020-12-13 22:45:32 所属栏目:PHP教程 来源:网络整理
导读:除了某些可以列入白名单的命令外,有没有办法禁用 shell_exec ? 我想我总是可以进入并将这些命令放入mod_sec,这是我不想运行的主要命令.但这种配置还不够.我想禁用shell_exec但允许shell_exec只运行某些命令,确切地说是两个命令. 我正在运行CentOS,Cpanel和P
除了某些可以列入白名单的命令外,有没有办法禁用 shell_exec

我想我总是可以进入并将这些命令放入mod_sec,这是我不想运行的主要命令.但这种配置还不够.我想禁用shell_exec但允许shell_exec只运行某些命令,确切地说是两个命令.

我正在运行CentOS,Cpanel和PHP 5.2.17.

解决方法

这本身并不是一个不可行/白名单,但如果正确完成,它会为用户提供受监督和严格控制的访问权限,只能访问您在代码中指定的那些shell命令.

$Ops = array(
            'function1'  => function($parameter){ 
                    DO PARAMETER CHECK HERE; 
                    shell_exec("CommandThatIsSafetoPerform" + parameter here);
                },'function2'  => function($parameter){ 
                    DO PARAMETER CHECK HERE; 
                    shell_exec("CommandThatIsSafetoPerform" + parameter here);
                },'function3'  => function($parameter){ 
                    DO PARAMETER CHECK HERE; 
                    shell_exec("CommandThatIsSafetoPerform" + parameter here);
                },);

然后调用使用这样的东西:

call_user_func(Ops["function1"],"your parameter here");

一些特别说明:让用户访问参数是一件麻烦事.你最好硬编码一切,而不是让用户能够修改任何参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读