我用来xdotool
从密码管理器 ( ) 安全地输入密码(而不是使用剪贴板)pass
,我想知道 xdotool 是否在某处有日志,这显然会使其不安全。
那么是否存在其他人可以看到的日志或任何其他潜在的不安全因素?
作为参考,这是我正在使用的:
#!/usr/bin/env python3
import subprocess
import sys
from time import sleep
if len(sys.argv) == 2:
delay = int(sys.argv[1])
else:
delay = 3
data = sys.stdin.readline().rstrip('\n')
sleep(delay)
subprocess.call(['xdotool', 'type', '--clearmodifiers', data])
答案1
xdotool
因此,据我所知,没有日志,但正如 kasperd 指出的那样,xdotool
使用密码作为参数运行显然是不安全的。但是我们可以通过管道传递密码,以避免它出现在 的输出中ps aux
。
echo -n "$pass" | xdotool type --clearmodifiers --file -
默认情况下(在 中bash
),使用内置版本的 echo,它不会作为自己的进程执行,因此不会出现在 中ps
。builtin echo
如果您不确定将使用哪个版本,您可以运行。
答案2
您应该直接与底层库交互,而不是xdotool
使用 Python进行调用:。subprocess.call()
xdotool
libxdo
Python 的绑定可在python-libxdo
并允许您从 Python 中“输入”密码,而无需显示在 中ps aux
,因为没有调用单独的进程。