将GET变量传递给php EXEC

chi*_*hip 1 php variables exec

我已经尝试过搜索,但是如果在某个地方得到回答的话,我没有多少运气道歉.

我正在玩一些零碎的东西,我试图将一个URL变量传递给EXEC.这是我正在尝试的... sc.exe是一个我必须传递URL的程序 - $ GET_ID变量必须来自URL

  $GET_ID =$_GET= ['myid'];
  exec('sc.exe --url=http://localhost/DS1/test.php?ID='.$GET_ID.'&TEST=1');
  echo $GET_ID;
Run Code Online (Sandbox Code Playgroud)

当我尝试这个代码时 - 似乎没有传递GET变量,程序得到 http://localhost/DS1/test.php?ID =&TEST = 1 '

我做了一些搜索..这似乎是一种限制..所以解决方案/解决方法是什么?

谢谢

Pek*_*ica 5

=的代码中有额外的内容.这应该工作:

$GET_ID = $_GET['myid']; 
Run Code Online (Sandbox Code Playgroud)

但是,直接将用户数据传递到命令行是非常危险的!它允许攻击者在命令行上执行任意命令.

必须使用escapeshellarg():

$GET_ID = escapeshellarg($_GET['myid']);
Run Code Online (Sandbox Code Playgroud)