0

私は2つのJSPを持っています:pay.jspconfirmPay.jsp

ユーザーはにデータ(クレジットカード番号など)を送信しますpay.jsp。このデータはバックエンドで検証され、他のデータと一緒にに表示されconfirmPay.jspます。彼が[確認]をクリックすると、(pay.jspページからの)データが請求に使用されます。彼が「キャンセル」をクリックすると、支払いは破棄されます。

ここで重要なことは次のとおりです。

  1. データはでのみ変更可能である必要がありますpay.jsp
  2. 2つの呼び出しの間でデータを保持する必要があります

この質問は、フォームの送信間でModelMapを保持する方法に似ていることを知っていますか?。機密情報(クレジットカード番号など)が関係するこのような状況で何が機能するかを知りたかっただけです。セッションに入れると、同じ関数で複数の呼び出しを行うと問題が発生します。

最良の選択が何であるかを理解するのを手伝ってください。

4

1 に答える 1

2

セッションに機密データを保存することを心配している場合でも、心配する必要はありません。セッションはサーバー側のメモリに保持されます。回線に接続されておらず、ネットワーク上の侵入者がブラウザのメモリから読み取ることはできません。

同じページで複数のブラウザタブまたはフレームを開いているユーザーがいて、同じセッションで複数の支払いを並行して送信することを懸念している場合、それは非常に有効な懸念事項です。私はステートレスソリューションを好む傾向があるので、非表示フィールドが許容できるソリューションである場合は、それらを使用して、あるページから次のページまで状態を維持します。これにより、複数のタブで問題が発生することはありません。セッションを使用して中間状態を保存する必要がある場合は、一意のIDを生成し(たとえば、シーケンス番号を使用して)、セッション属性として一意のIDを使用してデータをセッションに保存し、この一意のIDをページから渡すことができます。非表示フィールドを使用してページに移動します。そうすれば、複数のタブが異なるセッション属性を使用し、互いに邪魔することはありません。

于 2012-10-27T21:30:03.470 に答える