2016-06-16 3 views
0

設定ファイルなどのデータベース接続文字列や、メールを自動的に送信するためのメールアカウントパスワードのパスワードを持たないのが最適な解決策は何ですか?コードや設定ファイルにパスワードを持たない最良の方法

ありがとうございます

+2

(sql):Windowsアカウントではなく、SQLアカウント – Jamiec

+0

を使用してください。基本的にはどこかに保存してください。あなたに最も合っているものを選んでください。 –

+0

パスワードをアプリケーションにハードコードしたくない場合は、必要なときにパスワードを要求することができます。 –

答えて

2

あなたはencriptionを使用できますが、パスワードはどこかに保存する必要があります。 SQLサーバーを使用している場合は、代わりにWindows認証を使用してください。

+0

たとえば、アプリケーションにデータベース接続があり、接続文字列がapp.configにあり、メールを送信するための関数があり、SmtpClientクラスでパスワードは次のようなコードになります。Credentials = new NetworkCredential( "mailAdress "、" password ") – user1069516

+0

MS SQL Serverまたは別のサービスを使用していますか?使用している場合は、Visual Studioで設定したときに、ユーザー定義のパスワードを使用するかWindows認証を使用するかを尋ねられます@ user1069516 –

+0

WebアプリケーションでwcfサービスをホストしているためWindows認証を使用できませんDMZに保管してください。 – user1069516

0

保存場所は問わず、コードのどこかに保存して(ハードコードされている)、パスワードとユーザーを(例) AESThenHMAC、私は個人的に非常に好きです。

ただし、この暗号化方法では、リフレクタを使用してキャッチすることができるマスターキーが必要です。

リフレクタに対抗するには、メソッド/変数/定数などを読みにくくするコードを難読化する必要があります。

ただし、は何も100%セキュアではありません。しかし、この方法では、一般的な好奇心があなたの資格情報を取得するのを防ぐことができます。

誰かが本当にその資格情報を取得したいと思っていて、dllの知識とアクセス権を持っていると、彼はそれを手に入れて、時間を無駄にするだけです。

無料難読化ツール(.NET)(Source):

0

Passwordstate(https://www.clickstudios.com.au)などのパスワードマネージャを使用できます。

資格情報は、オンプレミスサーバーに安全に保存され、REST API経由でアクセスします。コード内にあるすべての情報はREST APIにアクセスするための情報です。コード内にそれがあっても編集できない場合は、暗号化することができます。

関連する問題