2009-10-08 108 views
2

我想写一个运行可执行映像而不创建新进程的程序...我想这样做是因为我想使用plink来发送密码远程ssh服务器...在没有创建新进程的情况下在另一个进程中运行可执行文件

plink程序发送命令行提供的密码..如果我使用fork和exec函数,有人可以使用进程资源管理器或ps -aef或cat/proc// cmdline ..如何避免这个安全漏洞..而且这个程序必须在Linux和Windows上运行..

+3

我希望这不是那些一个又一个“我想要做的'x'没有做'x'”问题... – 2009-10-08 12:35:08

+0

他想在运行另一个可执行进程没有运行新进程,所以我认为它可能是:-) – 2009-10-08 12:48:35

回答

-1

好吧,为什么在开始时发送密码?使用密码加密一些文本+时间戳,然后发送给自己授权?

和不,我不知道如何在不创建新进程的情况下调用另一个程序。

0

如果您担心密码是可见的,那么您最好加密密码。加密的密码对观察者来说价值不大,因此您可以使用如下方法:exec()fork()

3

大多数在命令行上接受密码的程序也可以通过文件,管道或环境变量接受它。为什么不使用这些其他机制之一?

+0

环境变量工作得特别好。使用的设置很少,文件系统上根本没有任何痕迹。 – 2009-10-08 12:39:13

+0

,除非在运行程序之前输入'export PASSWORD = iamgod',在这种情况下,它在您的命令历史记录中... – 2009-10-08 12:41:33

+0

此程序是plink..and它是第三方程序 – suresh 2009-10-08 12:42:25

0

为避免被提示输入密码或在可能被“嗅探”的地方使用纯文本密码,您几乎可以确定设置公钥验证(假设您必须使用plink ...) 。

使用管道也是一个很好的解决方案。

0

我发现了一个plink wrapper for unison,它可以满足您的需求,主要是在plink的STDOUT上等待密码提示,然后在STDIN上给它一个响应。

希望这对你的作品

相关问题