[解決済み] 動的なコード評価。安全でないデシリアライゼーション強化の問題
2022-02-18 05:21:31
質問事項
Fortifyの問題が発生しています。
Dynamic Code Evaluation: Unsafe Deserialization
を以下の行に追加してください。
rapidMtoorderObj = (MyMessageObject)theMessage.getObject();
私のJMSコードスニペットを添付します。 どなたか私のJMSコードをチェックして、なぜこの問題が発生するのかを説明し、修正方法を教えていただけませんか?
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.ObjectMessage;
public class MyMessageBean extends MessageReceiver {
private static final long serialVersionUID = 1L;
public MyMessageBean() {
super();
}
public void onMessage(Message message) {
MyMessageObject rapidMtoorderObj = new MyMessageObject();
try {
ObjectMessage theMessage = (ObjectMessage)message;
rapidMtoorderObj = (MyMessageObject)theMessage.getObject();
// Getting "Dynamic Code Evaluation: Unsafe Deserialization" in this line
}
}
}
解決方法は?
ObjectMessage
オブジェクトのペイロードのマーシャルとアンマーシャルを行うには、Javaシリアライゼーションに依存します。悪意のあるペイロードがホストシステムを悪用する可能性があるため、このプロセスは一般に安全でないと考えられています。
CVEsが多い
が作成されています。このため、ほとんどの JMS プロバイダは、ユーザに対して
ObjectMessage
メッセージになります。例えば、以下は関連する
ActiveMQ Artemis のドキュメント
.
この問題に対して、Fortify からの警告を除去するような魔法のようなコードの修正はありません。
ObjectMessage
を完全に削除してください(これは私が実際に推奨する方法です)。
JMSの使用には、他にも多くの問題があります。
ObjectMessage
セキュリティに関係なく
について読む
.
関連
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み】Javaの未処理例外について
-
[解決済み】どういう意味か。Serializableクラスがstatic final serialVersionUIDフィールドを宣言していないとは?重複している] [重複している] [重複している] [重複している
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み] メソッドがスーパータイプのメソッドをオーバーライドまたは実装していない - Overrideの場合
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み】javaで無効な文字定数
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?