猫を通してカールにパスワードを渡すのはどれほど安全ではありませんか?

猫を通してカールにパスワードを渡すのはどれほど安全ではありませんか?

curl何度も実行されるスクリプトがあります。

パスワードは一度だけ入力したいと思います(それで実行するたびにカールがパスワードを要求したくありません)。プロセスリストやファイル記述子などにパスワードを表示したくありません。

#!/bin/bash

read -p "Enter pw:" -s pw

provide_pw() {
    cat << END
"$pw"
END
}

for i in {1..10}; do
    curl -u $(logname):$(provide_pw) "$url"
done

この方法は安全ですか?これにより、他のユーザーが自分のパスワードを知ることができますか?

ベストアンサー1

$(provide_pw)read、cat、およびheredocsに関連するすべての操作の場合、最終コマンドの置き換えは実際のパスワードに置き換えられます。その後、プロセスの詳細の一部になります。

~からman curl、について-u

動作するシステムでは、カールはプロセスのリストから与えられたオプション引数を隠します。

したがって、これらのシステムと適切に設定されたLinuxシステムではパスワードが他のユーザーに隠されますが、他の場所では、などを使用してhidepidカールプロセスのコマンドラインを見ると誰でもパスワードを見ることができます。pstop

readパスワードが必要な場合は、curl次の手順を実行してください。

ユーザー名のみを指定すると、カールはパスワードの入力を求められます。

また見なさい:カールは、パスワードがps出力に表示されないようにどのように保護しますか?これには競争条件があります。カールを開始してコマンドラインをクリーンアップする間にパスワードが表示され、他の方法(Linuxなど)で非表示にしないと、そのウィンドウのすべてのhidepid人に表示されます。

おすすめ記事