見出し画像

パスワードを環境変数に設定するときにhistoryに残らないようにする

プログラムの中でパスワードをつかいた場合に環境変数から読み込むことがあるが,環境変数を設定するときにhistoryやbashファイルにパスワードが平文で残ることがある.
今回は,パスワードを平文としてhistoyr,bashファイルに残さずに環境変数に設定する.


環境変数TEST_ENVを出力するプログラム(test.py).今回の検証で使う.

import os

test_env = os.environ.get('TEST_ENV')
print(test_env)

まずは通常の方法でhistoryに環境変数の設定時のコマンドが残るのを確認する.

環境変数を設定して,それを出力する.

$export TEST_ENV="test_env"
$python test.py
test_env

hitoryを確認すると,環境変数TEST_ENVにtest_envを設定した履歴が残る.

$history | tail -n 2
5529  export TEST_ENV="test_env"
5530  python test.py

続いて,historyに残らない方法を試す.
readコマンドで環境変数を設定する.

test_passwordを環境変数TEST_ENVに設定して出力する.

$read TEST_ENV
test_password
$python test.py
test_password

historyで確認しても残っていないのがわかる.

$history | tail -n 2
5532  read TEST_ENV
5533  python test.py

この記事が気に入ったらサポートをしてみませんか?