将GET变量传递给php EXEC

时间:2011-04-24 13:12:45

标签: 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;

当我尝试使用此代码时,似乎没有传递GET变量,程序就会得到 http://localhost/DS1/test.php?ID=&TEST=1

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

感谢

2 个答案:

答案 0 :(得分:5)

您的代码中还有一个=。这应该有效:

$GET_ID = $_GET['myid']; 

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

必须使用escapeshellarg()

$GET_ID = escapeshellarg($_GET['myid']);

答案 1 :(得分:1)

只需删除$ _GET后的=