1

サーバーアプリケーションを分析すると、セッションのシリアライズとデシリアライズに関連して危険な可能性があることがわかりました。多くの場所のサーブレット層は、セッションを使用してオブジェクトを保存します。

シーケンスを考えてみましょう:

1) オブジェクト A はセッションに保存されます

2) オブジェクト A が変更される

3) オブジェクト A がセッションからオブジェクト B として読み取られる

1) と 2) の前にシリアライゼーションが発生し、B として読み取られたオブジェクトは、3 からの変更前のオブジェクト A のデシリアライズされたバージョンである可能性はありますか?

それとも、同じリクエストで 1、2、3 が発生する限り、A と B は等しいと保証されていますか?

4

1 に答える 1

1

メソッドによって暗示されるように意味的に等しい限り、セッションに配置したオブジェクトが同じインスタンスであることにコードが依存するべきではありません。それでequals十分です。

もちろん、サーバーの再起動後もセッションを存続させるためか、サーバーがクラスターの一部であるためか、セッションをシリアル化できる理由はさまざまです。

于 2013-01-25T13:19:55.913 に答える