→Struts関連
- Strutsトランザクショントークン
- 表示する画面の中にhiddenでランダムなID(トークン)を埋め込んでおき、そのトークンをサーバー側でもセッション内に保持しておく。
- その画面でサブミットされると、hiddenに埋められていたトークンがリクエストに入れられてサーバーに届く。
- サーバーでは、届いたhiddenのトークンとセッション内に保持していたトークンを比較する。一致していれば正しい遷移と判断する。
- 別の画面のhiddenには別のトークンが埋められている為、意図しない画面から来た場合はセッション内のトークンとは一致しないので 誤った遷移であると判断できる。
- 比較直後にセッション内からトークンを削除しておけば、重複サブミットの二度目の処理を防止できる。
- つまり、連続してサブミットボタンが押されたような場合には同一のトークンが再び届くが、セッションのトークンは既に存在しないので一致しない。すなわち不正なサブミットだと判断できる。
- org.apache.struts.util.TokenProcessor というシングルトンなクラスを使う
Last-modified: 2009-11-10 (火) 22:40:37