Struts 1.2.9のInvalidCancelException

2006-10-30 03:17:58 | Struts
Struts 1.2.9でInvalidCancelExceptionがスローされる場合は、
strutsconfig.xmlの中で、<set-property property="cancellable" value="true"/>を記述する。

例)
<action path="/fooAction" validate="true">
<set-property property="cancellable" value="true"/>
<forward name="success" path="/bar.jsp"/>
</action>

理屈は、第25回 リリース間近!アーキテクチャを一新したStruts 1.3
に載っていた。こういうこと「キャンセルボタンを想定していないアクションでは通常は isCancelled メソッドを呼び出すことはせず,入力検証が動作しているものとして処理を実装してしまう。このとき悪意あるユーザーがフォームの値と共に,キャンセルボタンを押したのと同等の特定のキーと値をHTTPリクエストパラメータとして送信した場合,入力値検証が行われずにアクションが実行されてしまうことなる。」らしいです。