SonarQube 规则:Spring Boot 应用程序中“使用命令行参数是安全敏感的”

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 上搜索了这个问题,令我惊讶的是我找不到任何关于这个问题的评论。我几乎可以肯定该方法内部已经存在一些安全检查SpringApplication.run。而且,我什至不记得有人在调用SpringApplication.run. 我只是想将其标记为误报并继续。

SonarQube在Spring框架控制器和Spring框架应用程序主类中显示安全错误

是误报吗?


MM们
浏览 325回答 4
4回答

ABOUTYOU

如果您没有使用任何命令行参数,那么您可以避免在 run 方法中提及 args 参数。就像下面的代码一样。@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class);    }}这将消除 sonarqube 热点问题。

隔江千里

如果您确定,则可以添加以下内容来解决该问题。@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class);    }}security hotspot根据声纳文档,这似乎被标记为 a 。它指出与漏洞不同,安全热点不一定是容易受到攻击的问题。相反,安全热点突出显示需要手动审查的安全敏感代码片段。经过审查,您会发现需要修复的漏洞或不存在威胁。任何命令行参数的使用都无需先进行清理。您的应用程序通过命令行参数接受敏感信息。如果您的应用程序属于此类,那么它们绝对是您的应用程序可能存在的安全问题。

慕后森

不,这确实是一个关键的安全问题。它只是要求在使用之前清理参数。对于简单的应用程序来说没有必要担心这样的问题,但是对于生产应用程序来说这可能是一个大问题。

墨色风雨

不使用命令行参数可以解决此问题。仅用于声纳检查更改代码:SpringApplication.run(ApiDispatchApplication.class, args);到:SpringApplication.run(ApiDispatchApplication.class);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java