7

私が作成するすべてのアプリケーションは、不定期にメールを送信できる必要があるようです。ステータスメールなど。この質問では、私のアプリケーションが多くの Windows クライアントにローカルにインストールされたバックアップ ツールであり、インストールごとに毎日ステータス メールを送信する必要があると仮定します。組織のサーバーまたは個人のコンピューターにインストールできます。

ユーザーが所有する電子メール アカウント (STMP ホスト、ポート、ユーザー名、パスワード、送信元アドレス) に資格情報を提供するようにユーザーに求めています。このアプローチは、Atlassian Jira/Confluence や JFrog Artifactory などのアプリケーションからコピーしました。とにかく、SMTPパスワードはどこにどのように保存されていますか?

私の現在の理解は次のとおりです。実際にメールを送信するには、プレーンテキストのパスワードを取得できる必要があるため、ソルティング/ハッシュのアプローチはここでは適用されません。パスワードをプレーンテキストで保存したくないので、ある種の暗号化/復号化アプローチが必要です (そうですか?)。

メインの電子メール アカウントを使用するのではなく、別のアカウントを使用するようにユーザーに指示することもできます。アプリケーションで使用するためだけに特別な電子メール アカウントをセットアップすることもできます。ユーザーが組織の管理者である場合、Exchange サーバーで電子メール アカウントをセットアップしたり、SMTP リレーを構成したりできる可能性があります。しかし、私は私を知っていますし、私のプライベート ユーザーも知っています。そのうちの何人かはとにかくメインのメール アカウントを使用するので、資格情報をできるだけ安全に保つためにできる限りのことをしたいと考えています (つまり、「ベスト プラクティスに従う」という意味です)。 」)。

できれば、暗号化されたパスワードをアプリケーションのデータベースに保存したいと思います。

何時間もかけてスタックオーバーフローに関する質問を読んでいますが、コンセンサスが表示されません (ユーザー アカウントのログイン資格情報など)。基本的にすべての開発者が遅かれ早かれこの問題に直面すると予想しているため、これは驚くべきことです。

従うべきいくつかのベスト プラクティス、これに関する確立された方法があるはずですが、私はまだそれを見つけていません。

この問題に取り組む方法を説明している SO/Web 上のリソースを教えてください。可能であれば、その分野の専門家によって書かれています。

私が見たいくつかのSOの質問:

4

1 に答える 1