私は、Windowsフォームのテキストボックスから文字列を受け取り、その文字列をパラメータとして使用するAPIに渡すアプリケーションを持っています。私は、文字列がタスクの完了後にプロセスメモリから依然として照会できることを知っています。私は文字列メモリ管理機能のためにSecureString
を使うことを提案しました。しかし、私が正しく理解していれば、安全な文字列が文字列から構築されるか、安全な文字列の値が最終的に文字列に格納される場合、文字列の目的は無効になります。プロセスメモリから文字列を削除するには?
可能な限り最適な解決策を提案してください。
:
しかし、時間メモリによって解析ツールは、リサイズアプリの要因です、キーロガーを使用するか、または単にレンチを取るとパスワードの誰かを脅すために容易になるだろうそれはワイヤで暗号化されていますか?もしそうでなければ、あなたはなぜそれについて思い出にいらっしゃるのですか? –
任意のパラメータは、実行スタック上のメソッドに渡されます。メソッドが終了すると、メソッドが呼び出される前に実行スタックポイントが場所に戻されます。したがって、メソッドによって使用される変数はスタック上にあり、アクセスできません。呼び出し元のメソッドは、スタックからオブジェクトを削除するために戻る前に変数を破棄する必要があります。 – jdweng
WinFormsの「TextBox」コントロールからのものであれば、どこにいてもその文字列の未知の/認識できない数のコピーが既に存在します。このリークは修正できません。これを再エンジニアリングして、「SecureString」を全面的に使用するか、このコードが実行されているマシンへの十分なアクセス権を持つ人がこのデータをプロセスメモリから読み込む可能性があります。しかし、そのようなレベルのアクセス権を持つ人は、とにかくキーロガーを簡単にインストールできたことに留意してください。 –