shell_exec
除了某些可以列入白名单的命令外,有没有办法禁用?
我想我可以随时进入并将这些命令放入mod_sec
我不想运行的主要命令中。但是这样的配置是不够的。我想禁用shell_exec
但只允许shell_exec
使用某些命令运行,确切地说是两个。
我正在运行 CentOS、Cpanel 和 PHP 5.2.17。
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");
一些特别说明:让用户访问参数是自找麻烦。您最好对所有内容进行硬编码,而不是让用户能够修改任何参数。