使用exec()PHP是否安全

时间:2014-03-11 09:16:35

标签: php exec

我想知道是否好(或坏),在PHP中使用exec()命令...
例如,使用API​​ Paypal REST,我使用exec()(使用curl)而不是来自PHP的curl

$a = exec('curl -v '.$this->ENDPOINT.'/v1/oauth2/token \
           -H "Accept: application/json" \
           -H "Accept-Language: fr_FR" \
           -u "'.$this->CLIENTID.':'.$this->SECRET.'" \
           -d "grant_type=client_credentials"'
          );
$a = json_decode($a);

有什么影响?最好不要这样做吗? 谢谢你们

1 个答案:

答案 0 :(得分:2)

如果这些参数不是来自最终用户,那么您非常安全。如果没有,那么你一定要通过escapeshellarg()

过滤它们

安全代码..

$a = exec('curl -v '.escapeshellarg($this->ENDPOINT).'/v1/oauth2/token \
           -H "Accept: application/json" \
           -H "Accept-Language: fr_FR" \
           -u "'.escapeshellarg($this->CLIENTID).':'.escapeshellarg($this->SECRET).'" \
           -d "grant_type=client_credentials"'
);
$a = json_decode($a);