SonarQube montre juste un problème de sécurité critique dans l'application Spring Boot très basique. Dans la méthode principale.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
SonarQube veut que je Make sure that command line arguments are used safely here.
J'ai recherché ceci sur StackOverflow et Google, et je suis surpris de ne pas avoir pu trouver un seul commentaire sur ce problème. Je suis presque sûr qu'il y a des contrôles de sécurité à l'intérieur du SpringApplication.run
méthode déjà. Et aussi, je ne me souviens même pas que quiconque désinfecte les principaux arguments de la méthode avant d'appeler SpringApplication.run
. Je veux simplement le marquer comme faux positif et continuer.
Une partie de cette question est également posée ici: SonarQube montre une erreur de sécurité dans les contrôleurs Spring Framework et dans la classe principale de Spring Framework Application
Est-ce un faux positif?
Si vous n'utilisez aucun argument de ligne de commande, vous pouvez éviter de mentionner le paramètre args dans la méthode run. Comme le code ci-dessous.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
Cela supprimera le problème de point d'accès sonarqube.
Non, c'est en effet un problème de sécurité critique. Il s'agit simplement de désinfecter les arguments avant de l'utiliser. Il n'y a pas besoin d'une telle préoccupation sur une application simple, mais cela peut être un gros problème sur une application de production.
Plus de détails peuvent être trouvés sur https://rules.sonarsource.com/Java/RSPEC-4823?search=Make%20sure%20that%20command%20line%20arguments%20are%20used%20safely%20here .
Il semble que ce soit marqué comme security hotspot
selon la documentation du sondeur. Il est dit
Contrairement aux vulnérabilités, les points d'accès de sécurité ne sont pas nécessairement des problèmes ouverts aux attaques. Au lieu de cela, les points d'accès de sécurité mettent en évidence les éléments de code sensibles à la sécurité qui doivent être examinés manuellement. Après examen, vous trouverez soit une vulnérabilité qui doit être corrigée, soit aucune menace.
Vous pouvez en savoir plus à ce sujet ici point d'accès de sécurité
Conformément à cette règle RSPEC-482 ou S482 , les arguments de la ligne de commande doivent être évalués en fonction de
Si votre application entre dans cette catégorie, il s'agit certainement d'un problème de sécurité possible pour votre application.