すでに多くの議論があると思いますが、アプリケーションにパスワードを保存する方法は? (データベース内のテーブルに格納されるユーザー パスワードではなく、接続文字列を作成するためのパスワードを意味していました)
xmlファイルなどのフラットファイルに暗号化して保存し、実行時に読み取り+復号化するなどの提案を見てきました。このアプリケーションがサーバー上で実行される場合、これは非常に良い選択ですが、アプリケーションがエンド ユーザーの PC に展開される場合はどうでしょうか。つまり、フラット ファイルがユーザーの PC にコピーされます。これはまだ良い習慣ですか?(私の本能は「NO」です)
私は SecurityString の存在を知っていますが、SecurityString にも簡単に侵入できるという 1 つの投稿を読みました。
Windows 7 に付属の Password Vault を使用するのは良い考えですか? プログラムでそれを利用する良い例はありますか? msdn で例を見たことがありますが、まず「windows 8」というラベルが付いています。次に、ファイルをダウンロードして Visual Studio 2012 EXPRESS でソリューションを開いたときに、開くことができませんでした。
どんな提案も大歓迎です...どうもありがとう。
- アップデート -
たとえば、アプリケーションが Windows ドメイン内の少数の PC で実行されるとします。(1) 起動時に、アプリケーションは LDAP 認証 (アクティブ ディレクトリ) を行います。認証が成功した場合にのみ、アプリケーションは実行され、(2) アプリは舞台裏でデータベースに接続し、ユーザー入力を取得して db を照会できます。ここで、db passwd が関与して接続文字列を構築します。 (いいえ、これは SQL SERVER データベースではないので、商用プラグインを使用しない限り、Windows 認証を使用するオプションは実行可能ではないと思います)。
データベースは同じドメインに存在し、特定の範囲の IP アドレスを許可するように設定されており、SSL が有効になっています。要するに、この意味で非常に安全です。まだ安全ではない唯一のビットは、アプリケーションの db passwd を保存する方法です。
私の目を引いたのは、Mysql Workbench でした。パスワードボールトに保存されているパスワードを含むデータベース接続を保存します。これは mysql 独自のパスワード ボールトの実装であり、それがどのように行われるのか非常に興味があります。