【问题标题】:Sonar hostpot: main aplication in drop wizard [duplicate]声纳热点:dropwizard中的主要应用[重复]
【发布时间】:2020-06-24 13:59:25
【问题描述】:

我正在使用 Dropwizard 开发一个应用程序,当传递 args 以便能够解除应用程序时,sonnar 抛出了一个 hostpot 错误:

public static void main(final String[] args) throws Exception {
        new AfiliacionesGeneralServicesApplication().run(args);
}

sonnar

有什么方法可以删除 args 或修复这个 hostpot?

【问题讨论】:

    标签: java sonarqube args principal


    【解决方案1】:

    Sonarqube official document link to command line args

    简单来说,您需要在将参数传递给new AfiliacionesGeneralServicesApplication().run(args) 之前编写一个验证函数,当我说验证时,有很多方法可以编写这样的验证函数

    1. 白名单验证,这种验证处理检查 args 与接受的 args 列表并在您看到未知 args 的情况下失败。
    2. 黑名单验证,这种验证处理检查 args 是否有潜在有害值列表,如果任何 args 与值列表元素匹配则失败。
    3. 编写一个清理函数,该函数检查和更改 args 的值,并确保值可以安全使用以将其传递给其他函数。

    上述所有函数都应该在您将args 从 main 方法传递给任何其他函数之前发生。您也可以结合上述功能来增强安全性。

    【讨论】:

      【解决方案2】:

      根据 SonarQube 文档:

      安全热点:

      安全热点会突出显示一段对安全敏感的代码, 开发商需要审核。审查后,你会发现那里 没有威胁,或者您需要应用修复程序来保护代码。

      规则:使用命令行参数是安全敏感的

      此规则在每个程序入口点(主 方法)当使用命令行参数时。目标是引导 安全代码审查。

      问问自己是否

      • 使用任何命令行参数时都没有先经过清理。
      • 您的应用程序通过命令行参数接受敏感信息。

      如果您对这些问题中的任何一个回答是肯定的,那么您将面临风险。

      如果您有风险,请确保在使用命令行参数之前对其进行清理(仅允许一小部分列入白名单的字符)。

      如果您的应用程序不是关键应用程序,或者您确定提供的参数没有以不安全的方式使用,您可以将热点标记为已审核。

      【讨论】:

        猜你喜欢
        • 2016-08-24
        • 1970-01-01
        • 2017-05-17
        • 1970-01-01
        • 2020-03-16
        • 2017-06-11
        • 1970-01-01
        • 1970-01-01
        • 2012-11-08
        相关资源
        最近更新 更多