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检查每一件事,我想每个用户的限制可以在这里起作用。我会试一试,它可能更适合你