回答編集履歴

1

問題の発生源を指摘内容にあわせて修正しました。

2017/07/30 13:19

投稿

A-pZ
A-pZ

スコア12011

test CHANGED
@@ -1,7 +1,19 @@
1
1
  必ず入り込むかと言えば「いいえ」です。他の理由でDEFAULT_MEMBER_ACCESSを許可された場合には不要です。
2
2
 
3
- なお、S2-048が発動する原因は、Struts2内部からのOGNLの利用方法が引き起こす問題なのですが、より根本的な問題として、Struts2-Struts1プラグイン利用していと発動します。
3
+ なお、S2-048が発動する原因は、Struts2内部からのOGNLの利用方法が引き起こす問題なのですが、より根本的な問題として、ActionMessage設定す際に、
4
4
 
5
5
 
6
6
 
7
+ ```java
8
+
9
+ messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));
10
+
11
+ ```
12
+
13
+
14
+
15
+ と、メッセージの値に直接入力値を混ぜ込んだ文字列にしてしまうと、 **そのままの値をOGNL経由で実行してしまう** 問題があります。
16
+
17
+
18
+
7
- Struts2-Struts1プラグインはデフォルトでは使用されず、またStruts2.1以降では動作はしますが、非推奨のプラグインであり、Struts2.5系では排除されています。
19
+ ちなみに問題となったStruts2-Struts1プラグインはデフォルトでは使用されず、またStruts2.1以降では動作はしますが、非推奨のプラグインであり、Struts2.5系では排除されています。