1

記憶機能 (ユーザー名とパスワードの資格情報の両方) に取り組んでいるときに、UseSystemPasswordChar プロパティを true に設定すると非表示になったパスワードを回復できることに気付きました。以下のスクリーンショットの例:

UseSystemPasswordChar プロパティを true に設定

また、多くのアプリケーションが同じ問題に悩まされていますが、すべてがそうであるとは限らないことにも気付きました。そのため、これを回避する方法があるに違いないと思います。

問題は、この方法を使用して資格情報を取得できないようにするために、どのようなアプローチを取る必要があるかということです。

前もって感謝します。

4

1 に答える 1

1

パスワードが保存されたら、ユーザーに再度表示するときに、古いパスワードをボックスに戻さないでください。テキストボックスがプレースホルダーテキストと一致する場合は、保存されたパスワードを使用するプレースホルダーテキストを入力します。

他のいくつかのヒントについては、可能であれば、パスワード自体の代わりにパスワードのハッシュをメモリに保存してください。Process Explorer などの文字列ユーティリティを使用して、メモリ内のパスワード文字列を見つけることができます。

パスワードの代わりにハッシュを保存できない場合 (たとえば、他のサービスに接続していて、プレーンテキストのパスワードを送信する必要がある場合)、SecureStringを使用できます。これにより、メモリ内の文字列が暗号化されたままになります。

パスワードをメモリだけでなく長期間安全に保存するには、ProtectedDataクラスを使用して文字列を暗号化してからハード ドライブに書き込み、DataProtectionScopeを に設定しCurrentUserて、ログインしているユーザーだけがデータを取得できるようにします。

心に留めておいてください: 保存されたパスワードが何であるかを誰かが見つけられないようにすることはできませんが、それを取得することの難しさの基準を大幅に引き上げることはできます.

于 2012-08-31T20:12:01.840 に答える