将密码发送到命令行工具
我正在写一个Python应用程序,它需要使用一个命令行工具(这个工具是专有的,所以不能修改)来完成部分工作。问题是,我必须把密码作为命令行参数传递给这个工具,这样任何用户只要执行'ps ax'命令就能轻易看到密码。请问我该如何在Python(或者一个脚本)中安全地将密码发送给这个命令行工具呢?
6 个回答
0
写一个新的Python脚本,这个脚本可以从命令行接受密码,使用的是getpass.getpass()
这个方法,然后把密码存储在一个变量里。接着,使用这个变量(里面有密码)来调用脚本中的命令。
2
如果密码只能在命令行中输入,那你可能就没什么办法了。你确定没有其他方式可以发送密码吗?如果你可以通过进程的 stdin
来发送密码,那你可以通过管道与它沟通,这样就能安全地发送密码了。
5
如果这个应用程序有一些互动模式,你可以使用类似于 pyexpect 的工具。
如果它只在命令行上接受密码,那这个应用程序本身就是设计得很糟糕,容易被 'ps ax' 这样的命令攻击。你怎么能指望去解决这个本来就有问题的设计呢?这个软件是专有的,抱怨应该去找那个有问题的^H^H^H^H^H^H作者。