我不确定这个问题是否更适合 Stackoverflow 或 SuperUser 或哪个 StackExchange 网站...
基本上,我使用带有多个命令行参数的 Process.Start
从 C# 启动第三方应用程序。其中一个命令行参数是密码。
我认为我在保护我应用程序中所有地方的密码方面做得非常好,除非您在任务管理器中打开“进程”选项卡,您可以添加“命令行”列并查看所有这些命令行参数.
谁能想出一种方法来启动以某种方式隐藏命令行参数的进程?这可能吗?
谢谢!
编辑:
这是 plink.exe(SSH/Putty 东西)的 Windows 服务包装器。如果我没有在命令行中指定密码,它会提示输入密码,但我收到了这个奇怪的警告:
Plink.exe - 3/30/2013 2:40:47 PM - Attempting keyboard-interactive authentication
Plink.exe - 3/30/2013 2:40:47 PM - Server refused keyboard-interactive authentication
Plink.exe - 3/30/2013 2:40:49 PM - user@hostname.com's password:
我已经指定重定向标准输入,但也许我会继续研究它并看看我是否可以解决它。此外,正如 David Heffernan 所建议的,我将进一步研究 Pageant。谢谢大家 - 一旦我找到更好的解决方案,我会发布更新!
最佳答案
无法将命令行参数传递给进程,以便进程可以看到它,但系统中的其他一切都不能。
这是一个明显的缺陷,当程序允许将密码作为参数传递时,这样做通常是为了方便不担心窃听者的用户。此外,精心设计的程序通常会提供其他安全的身份验证方法。
关于c# - 从任务管理器启动进程并隐藏命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15716567/