如果在某个地方得到解答,我已经尝试过搜索,但没有多少运气道歉。
我正在玩一些零碎的东西,我试图将一个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“
我已经做了一些搜索..这似乎是一种限制..所以解决方案/解决方法是什么?
感谢
答案 0 :(得分:5)
您的代码中还有一个=
。这应该有效:
$GET_ID = $_GET['myid'];
然而,直接将用户数据传递到命令行非常危险!它允许攻击者在命令行上执行任意命令。
您必须使用escapeshellarg()
:
$GET_ID = escapeshellarg($_GET['myid']);
答案 1 :(得分:1)
只需删除$ _GET后的=
。