[英]Disable subprocess.Popen echo to command prompt window title in Python
我正在尝试使用 Python 的subprocess.Popen
为 Python 绑定到命令行界面构建一个模块; 就 CLI 绑定而言,几乎就在那里,但我真的希望能够掩盖一些“私人”论点。
CLI 使用帐户信息,我想在命令提示符标题中隐藏帐户凭据。 下面是我对 CLI 绑定类使用login
方法时出现的屏幕截图。
我知道我在这里使用纯文本作为密码( 'TAIL'
),但我想简单地展示正在发生的事情的用法。 从图像中可以看出,使用 subprocess.Popen “发送”的完整命令显示在提示的标题中。
我最近发现有一种方法可以使用os
或ctypes
以编程方式更改标题,因此我可以有效地屏蔽或掩盖我不想在命令提示符标题上显示的“私有”凭据,如下所示:
但有与禁用“回波到标题”(由于没有一个更好的名字)的一个更好的办法subprocess.Popen
?
事实上,密码永远不应该作为命令行参数传递给可执行文件。
原因:
任何能够查看正在运行的进程及其参数的人都可以看到密码。
一种解决方案是,父进程。 将密码放在环境变量中,要调用的程序从环境变量中获取参数。
所以调用者会是这样的:
import os
os.environ["ACRTAC_PASSWORD"] = "TAIL"
subprocess.Popen([...])
和 acrtac.py
import os
password = os.environ["ACRTAC_PASSWORD"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.