2011-01-18 14 views
0

httpsが有効な場合でも、コードビハインドでイベントログにパスワードを書き込むことができます。データストアに対してパスワードをチェックしている間、そのパスワードをコードで暗号化しておく方法はありますか? (ログインコントロールを使用して)コードでのパスワードの保護

(アンドリューの答えにコメントを追加することができませんでしたので、私はそれをここに入れている)
NTLMは、ユーザーが右にログインしているマシンのユーザ名/パスワードを使用していますか?このために、私はActive Directoryをサーバー上でデータストアとして使用することを考えていました。これは、ユーザーが現在自分のマシンにログインしているものとは異なるun/pwです。

答えて

0

平文パスワードがメモリに格納されていることが心配な場合は、できるだけ早くワークフローで暗号化するだけです。また、平文パスワードを決してすべてのイベントログに記録しないようにしてください。

+0

これは実際には何も修正されません。プレーンテキストパスワードは、ライフサイクルのすべての時点で、依頼で渡されたコンテキストオブジェクトを介して引き続き利用できます。これは変更することはできません。完成したレスポンスがプッシュされるまで普遍的に利用できます。 –

+0

@Joel - 十分に真実ですが、ここに提示されている解決策には同じ問題があります。 –

+0

である必要はありません。彼の認証オプションが何であるかによって異なります。彼がSQLストアや他の同様のDBに悩まされているなら、それは正しいです。統合されたNTLM認証を可能にするために認証スキームを変更できる場合は、プロセス全体でハッシュされ、表示または保存にパスワードを使用できなくなります。 –

1

SecureStringクラスを確認してください。

秘密にする必要があるテキストを表します。テキストは使用時にプライバシーのために暗号化され、不要になったときにコンピュータのメモリから削除されます。

+0

'SecureString'は素晴らしいですが、実際にはASP.NETには意味がありません。平文のパスワードはサーバに文字列として渡され、 'SecureString'に変換されなければなりません。この時点でOPはパスワードを暗号化することもできます。 –

1

フォーム提出でプレーンテキストのパスワードを送信する場合は、常にHttpContextオブジェクトで利用できます。ページの使用中に削除または暗号化することはできません。それを格納する機能は、完成したページの応答がクライアントにプッシュされるまで、常に使用可能です。これを超えても、パスワードは平文でメモリに格納され、16進エディタ(RAM)を介してアクセスできます。

これらの方法でパスワードが使用できるかどうかが気になる場合は、Windows統合認証によるNTLM認証を有効にすることでより効果的です。

関連する問題