Подстановка строки через PHP в SSH [закрыто]

Я уже настроил использование SSH в PHP, и большинство вещей работает.

Теперь я хочу отредактировать строку в файле и заменить ее обратно. Он работает непосредственно на сервере, но не может заставить его работать с файлами PHP. Вот что я пытаюсь.

$new_line1 = 'Line $I want to add - The $I has to go into the file as it is';
$new_line2 = 'Ending $text of the line - $text again goes into file;
$query = "Addition to line";
$exec1= 'cd /root; perl -pe "s/.*/' ;
$exec2=  '/ if $. == 37" Edit.sh > Edited.sh';
$new="$exec1$new_line1$query$new_line2$exec2";
$edit="cd /root/mp; cp Edited.sh Edit.sh";
echo $ssh->exec($new);
echo $ssh->exec($edit);

Дело в том, что запуск команды perl непосредственно в SSH работает без каких-либо ошибок, но когда я запускаю ее через PHP, я получаю сообщение об ошибке: Замена подстановки не завершается на -e строке 1. Я хочу, чтобы знаете, почему это работает именно так, а не так?

-1
задан 9 July 2012 в 11:26
1 ответ

О, это похоже на катастрофу в сфере безопасности и надежности.

Краткий ответ: в $ exec1 есть начальная цитата, но я не могу найти подходящую заключительную цитату.

] В общем, если кому-то удастся вставить цитату в строку1 или строку2, это пойдет не так. По сути, это предоставляет веб-интерфейс для любого, у кого есть доступ к нему, для запуска произвольного кода на вашем компьютере ...

3
ответ дан 5 December 2019 в 19:18

Теги

Похожие вопросы