提问者:小点点

声纳主机在drop向导中的主要应用


我正在使用Dropwizard处理一个应用程序,sonnar在传递参数以便能够解除应用程序时抛出一个hostpot错误:

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

索纳尔

有什么办法我可以删除args或能够修复这个主机?


共2个答案

匿名用户

命令行参数的官方文档链接

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

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

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

匿名用户

根据SonarQube文档:

安全热点:

安全热点突出显示开发人员需要检查的对安全敏感的代码段。 检查后,您会发现不存在威胁,或者需要应用修复程序来保护代码。

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

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

问问你自己

  • 在使用任何命令行参数时,都不会先进行清理。
  • 应用程序通过命令行参数接受敏感信息。

如果你对这些问题中的任何一个回答是,你就有危险了。

如果您有风险,那么在使用命令行参数之前,请确保对它们进行了清理(只允许一小部分白名单字符)。

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