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リクエストパラメータとして送信した場合,入力値検証が行われずにアクションが実行されてしまうことなる。」らしいです。
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リクエストパラメータとして送信した場合,入力値検証が行われずにアクションが実行されてしまうことなる。」らしいです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます