2017-10-31 13 views
1

私は電子メールを送信するRubyスクリプトを持っていますが、電子メールを送信するためにはsmtpアカウントの資格情報を保存する必要があります。現在、パスワードを格納しているxmlファイルがありますが、XMLでBas64を使用してパスワードをエンコーディングしてからスクリプトでデコードしています。私はスクリプトを.exeにもパッケージ化しました。Rubyにパスワードを保存するためのベストプラクティス。 XML、ソースまたは他の?

私は、ベストプラクティスは、資格情報を格納するという点であるかを把握しようとしています。 xmlの代わりに実際のスクリプトにパスワードを格納する必要がありますか?私が使用すべき他の方法がありますか?スクリプトはLANの外部に公開されているサーバーで実行されることはありませんが、私はまだパスワードができるだけ安全であることを確認したいと思います。

答えて

1

Base64では、暗号化ではない、誰もがそれを逆にすることができます。その点については、実際の暗号化を使用することは、プログラムにキーが含まれていてそれ自体が読み込み可能であれば助けにならないでしょう。パスワードを使用するプログラムを作成する必要があるが、プログラムのユーザーがパスワードにアクセスできないようにするには、オペレーティングシステムとコードを使用する必要があります。

  1. パスワードをコードとは別のファイルに入れます。
  2. ファイルのオペレーティングシステムのアクセスコントロールを使用して、パスワードでファイルを読み取ることができるユーザーのみを確認します。これは、プログラムを実行できるユーザーと同じリストではなく、管理者のみである可能性があります。
  3. スクリプトのオペレーティングシステムに擬似ユーザーを追加します。これは実際の人ではなく、プログラムだけが実行するために使用するアカウントです。このユーザーを、ファイルを読み取ることができるようなパスワードを持つファイルのアクセス制御に追加します。このユーザーがインタラクティブにログインできないようにしてください(例:シェルプロンプトを入手するか、デスクトップセッションを取得してください。
  4. プログラムを実行するユーザーがスクリプトの疑似ユーザーとしてプログラムを実行できるようにします。 Windowsでは、これは "runas"コマンドで行うことができます。 Linuxでは "sudo"を使うことができます。
関連する問題