Запуск исполняемого файла в другом процессе без создания нового процесса - PullRequest
2 голосов
/ 08 октября 2009

Я хочу написать программу, которая запускает исполняемый образ без создания нового процесса ... Я хочу сделать это, потому что я хочу использовать plink, который отправляет пароль на удаленный ssh-сервер ...

Программа plink отправляет пароль, предоставленный в командной строке. Если я использую функции fork и exec, кто-то может увидеть пароль, предоставленный в командной строке, с помощью Process Explorer или ps -aef или cat / proc // cmdline. Как избежать эта дыра в безопасности .. и эта программа должна быть запущена как на Linux, так и на Windows ..

Ответы [ 6 ]

7 голосов
/ 08 октября 2009

Настройте ваш SSH-сервер на использование аутентификации открытого / секретного ключа RSA вместо паролей. Обычно это лучший выбор для SSH в целом. Смотри http://www.google.com/search?q=set+up+ssh+rsa.

3 голосов
/ 08 октября 2009

Большинство программ, которые принимают пароль в командной строке, также принимают его через файл, канал или переменную окружения. Почему бы не использовать один из этих других механизмов?

0 голосов
/ 08 октября 2009

Я нашел упаковку plink для unison , которая делает то, что вам нужно, в основном в ожидании запроса пароля на STDOUT plink, а затем отправляет ответ на STDIN.

Надеюсь, это работает для вас

0 голосов
/ 08 октября 2009

Чтобы избежать запроса пароля или использования обычного текстового пароля в местах, откуда его можно «прослушать», вы почти наверняка должны установить аутентификацию с открытым ключом (предполагая, что вы непременно захотите ...).

Использование труб также является хорошим решением.

0 голосов
/ 08 октября 2009

Если вы беспокоитесь о том, что пароль виден, возможно, вам лучше зашифровать пароль. Зашифрованный пароль не имеет большого значения для наблюдателя, поэтому вы можете использовать такие методы, как exec() и fork()

0 голосов
/ 08 октября 2009

ну зачем отправлять пароль в начале? использовать пароль для шифрования текста и отметки времени, а затем отправить для авторизации самостоятельно?

и нет, я не знаю, как вызвать другую программу без создания нового процесса.

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