Php 有没有可能[如何]列入黑名单&;白名单shell_exec()命令?

Php 有没有可能[如何]列入黑名单&;白名单shell_exec()命令?,php,shell-exec,Php,Shell Exec,我需要允许以下操作: shell_exec('whois ' . $domain); 但是我需要禁止其他任何事情,比如: shell_exec('ls'); shell_exec('rm -rf /'); shell_exec('sudo service nginx restart'); 是否可以只“白名单”一个shell\u exec命令?如果是关于某个脚本-只要不要将用户输入传递到shell\u exec参数,当某个参数匹配某个值时调用它 if ($_GET['cmd'] === 'wh

我需要允许以下操作:

shell_exec('whois ' . $domain);
但是我需要禁止其他任何事情,比如:

shell_exec('ls');
shell_exec('rm -rf /');
shell_exec('sudo service nginx restart');

是否可以只“白名单”一个
shell\u exec
命令?

如果是关于某个脚本-只要不要将用户输入传递到
shell\u exec
参数,当某个参数匹配某个值时调用它

if ($_GET['cmd'] === 'whois') {
    shell_exec('whois whatever');
}

如果是关于托管的类型,那么您应该使用操作系统权限限制对数据的访问。因此,用户可以调用
shell_exec('rm-rf/')
,但不会发生任何事情。

也许这不是您问题的答案,但:

您可以使用php进行检查:

if(substr( $command , 0, 5 ) === "whois"){
  shell_exec($command );
}

但是我仍然不认为在shell_exec中输入用户信息是明智的,但是如果你真的想要,我应该先用php检查每一件事,我想每个用户的限制可以在这里起作用。我会试一试,它可能更适合你