为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MM们 2023-07-13 15:54:58
SonarQube 只是在非常基本的 Spring Boot 应用程序中展示了一个严重的安全问题。在主要方法中。@SpringBootApplicationpublic 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框架应用程序主类中显示安全错误是误报吗?
查看完整描述

4 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您没有使用任何命令行参数,那么您可以避免在 run 方法中提及 args 参数。就像下面的代码一样。


@SpringBootApplication

public class Application {


    public static void main(String[] args) {

        SpringApplication.run(Application.class);

    }


}

这将消除 sonarqube 热点问题。


查看完整回答
反对 回复 2023-07-13
?
隔江千里

TA贡献1906条经验 获得超10个赞

如果您确定,则可以添加以下内容来解决该问题。


@SpringBootApplication

public class Application {


    public static void main(String[] args) {

        SpringApplication.run(Application.class);

    }


}

security hotspot根据声纳文档,这似乎被标记为 a 。它指出

与漏洞不同,安全热点不一定是容易受到攻击的问题。相反,安全热点突出显示需要手动审查的安全敏感代码片段。经过审查,您会发现需要修复的漏洞或不存在威胁。

  • 任何命令行参数的使用都无需先进行清理。

  • 您的应用程序通过命令行参数接受敏感信息。

如果您的应用程序属于此类,那么它们绝对是您的应用程序可能存在的安全问题。


查看完整回答
反对 回复 2023-07-13
?
慕后森

TA贡献1802条经验 获得超5个赞

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

查看完整回答
反对 回复 2023-07-13
?
墨色风雨

TA贡献1853条经验 获得超6个赞

不使用命令行参数可以解决此问题。

仅用于声纳检查更改代码:

SpringApplication.run(ApiDispatchApplication.class, args);

到:

SpringApplication.run(ApiDispatchApplication.class);


查看完整回答
反对 回复 2023-07-13
  • 4 回答
  • 0 关注
  • 324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信