【问题标题】:Does the expect's 'spawn' command passes the parameters securely?期望的“spawn”命令是否安全地传递参数?
【发布时间】:2016-01-04 14:17:56
【问题描述】:

我有以下执行“myexe”并传递一些密码作为参数的期望脚本:

#!/usr/bin/expect
gets stdin pwd

log_user 0

eval spawn "/myexe ${pwd}"

log_user 1
expect eof
catch wait result
exit [lindex $result 3]

我的可执行文件“myexe”是编译后的 Linux 可执行文件(不是 shell 脚本),目标是安全地将密码传递给它。不幸的是,可执行文件不会读取密码的标准输入,而是将其作为启动参数。

当我执行以下期望脚本时,我看不到带有“ps”的“myexe”可执行文件。有人知道期望执行的“生成”是否足够安全?密码会在其他地方可见吗(例如 /proc)?

【问题讨论】:

    标签: linux bash passwords expect spawn


    【解决方案1】:

    不要在这里使用eval。这可能是灾难性的,具体取决于密码的内容。这应该足够了:

    spawn /myexe $pwd
    

    在 myexe 运行时执行ps -ef 的任何人都可以看到密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      相关资源
      最近更新 更多