Передача переменной GET в php EXEC - PullRequest
1 голос
/ 24 апреля 2011

Я пытался искать, но мне не очень повезло, если где-нибудь ответили.

Я играю с несколькими кусочками и пытаюсь передать переменную 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 ]

5 голосов
/ 24 апреля 2011

У вас есть дополнительный = в вашем коде.Это должно работать:

$GET_ID = $_GET['myid']; 

однако прямая передача пользовательских данных в командную строку очень опасна! Это позволяет злоумышленнику выполнять произвольные команды в командной строке.

Вы должны использовать escapeshellarg():

$GET_ID = escapeshellarg($_GET['myid']);
1 голос
/ 24 апреля 2011

Просто удалите = после $ _GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...