系统相关
首页 > 系统相关> > PHP Shell_exec仅适用于某些命令

PHP Shell_exec仅适用于某些命令

作者:互联网

除了某些可以列入白名单的命令外,有没有办法禁用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");

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

标签:php,linux,shell-exec
来源: https://codeday.me/bug/20190709/1413352.html