SonarQubeは、非常に基本的なSpring Bootアプリケーションで重大なセキュリティ問題を示しています。メインメソッドで。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
SonarQubeが私にMake sure that command line arguments are used safely here.
を求めています
StackOverflowとGoogleの両方でこれを検索しましたが、この問題に関するコメントを1つも見つけられなかったことに驚いています。 SpringApplication.run
メソッドの内部には、すでにいくつかのセキュリティチェックが含まれていると思います。また、SpringApplication.run
を呼び出す前に、メインメソッドの引数をサニタイズする人を覚えていません。 false positiveとしてタグ付けし、次に進みたいだけです。
この質問の一部もここで尋ねられます: SonarQubeは、Spring FrameworkコントローラーおよびSpring Frameworkアプリケーションのメインクラスでセキュリティエラーを示します
誤検知ですか?
コマンドライン引数を使用していない場合は、runメソッドでargsパラメータについて言及しないようにすることができます。以下のコードのようにしてください。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
これにより、sonarqubeホットスポットの問題が削除されます。
いいえ、それは確かに重大なセキュリティ問題です。それはそれを使用する前に引数をサニタイズするように求めているだけです。単純なアプリケーションではこのような懸念は必要ありませんが、本番アプリケーションでは大きな問題になる可能性があります。
これはソナーのドキュメントに従ってsecurity hotspot
としてマークされているようです。それは述べています
脆弱性とは異なり、セキュリティホットスポットは必ずしも攻撃の対象となる問題ではありません。代わりに、セキュリティホットスポットは、手動で確認する必要のあるセキュリティの影響を受けやすいコードを強調表示します。確認すると、修正が必要な脆弱性、または脅威がないことがわかります。
詳細はこちら セキュリティホットスポット
このルール RSPEC-482 または S482 に従って、コマンドライン引数は、
アプリケーションがこのカテゴリに該当する場合、それらは間違いなくアプリケーションのセキュリティ上の問題である可能性があります。