JD.CATCH
JD.CATCH の欠陥は、java.lang.NullPointerException などの望ましくない例外のキャッチブロックが検出された場合に報告されます。起こりうる例外の一覧は、「パラメーター」のセクションに掲載されています。
脆弱性とリスク
例外は、その名前が示すように、例外的な状況のみに対して使用すべきであり、通常の制御フローには使用すべきではありません。例外を通常の制御フローに使用すると、コードのパフォーマンス、保守性、判読性が著しく低下します。
軽減と防止
コードを予防的チェック (フル Null、配列インデックスなど) を実行するコードに変更してください。
例 1
コピー
String test1(String my) {
try {
return my.substring(1,4);
} catch (NullPointerException e) {
return "";
}
}
JD.CATCH が 12 行目に対して報告されています。明示的な 'java.lang.NullPointerException' のキャッチは好ましくない手法です。その代わりに、データの予防的チェックを使用してください。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。