データベースには、Java 文字列プールに入らないようにする必要がある機密フィールドがいくつかあります。データベースではすべて VARCHAR であり、コードで StringBuilders を使用して、それらが定数プールに入れられないようにします。
MyBatis を使用してデータベースと対話します。現在、setObject を使用して StringBuilder を Varchar にマップしようとしているタイプハンドラーを実装しようとしています。
これが可能かどうか疑問に思っています。可能であれば、MyBatis と JDBC の間に、VARCHAR が String プールに収まらないことを保証できないことを意味する他の領域がありますか? (コード内のキャスト、文字列としてのステートメント、そのようなもの)
mybatis-users Google グループでも質問しましたが、これまで誰も助けてくれませんでした
編集 - これは厳密には文字列プールに関するものではなく、データがヒープ上のどこにあるかを制御し、null で上書きすることによって可変 CharSequence からデータをできるだけ早く消去することであることを明確にする必要があります。文字列をプールに入れることは絶対にできませんが、プールにない文字列を null にするだけで、ガベージ コレクションの仕組みが原因でセキュリティの問題が発生する可能性があります。