この美しい質問を読んだ後:パスワードに文字列よりもchar []が優先されるのはなぜですか?、これがサーブレットベースのWebアプリケーションにどのように適用されるかについて興味があります。UIにパスワードの入力フィールドがあるとすると、パスワードは取得可能であり、これを使用して。request.getParameter("passwordFieldName")を返しますString。その後、それをに変換してもchar[]、GCがオブジェクトをクリアするのを待つ必要がありStringます。
また、パスワードハッシュに使用することを検討している暗号化/ハッシュライブラリの多くには、checkPassword(plaintext, hashed)2つの文字列を受け取り、入力されたプレーンテキスト文字列がに等しいハッシュを与える場合にtrueを返すようなメソッドがありますhashed。これにより、があったとしても、コンストラクターchar[]を使用して配列を文字列に変換する必要があります。new String(char[])
保存されている表現と比較するために、パスワードを文字列として使用することは避けられないように思われます。その小さなウィンドウでの攻撃が心配な場合、どのように身を守るのですか?