Qodana logo

Qodana

The code quality platform for teams

News Qodana

Publication de Qodana 2024.2 : linter Android amélioré, détection des mots de passe codés en dur et bien plus

Read this post in other languages:

La version 2024.2 de Qodana apporte de nombreuses nouvelles fonctionnalités et améliorations ! Ces mises à jour majeures renforcent la sécurité, étendent la compatibilité et simplifient le travail des équipes de développement qui cherchent à améliorer la qualité du code.

Voici les nouveautés de cette version :

Voir la documentation de Qodana 2024.2

Détection des mots de passe codés en dur

Les mots de passe codés en dur peuvent constituer un problème de sécurité majeur, car lorsqu’ils sont exposés, les attaquants peuvent les utiliser pour faire fuiter des données et accéder à des informations sensibles, notamment dans les applications open-source ou distribuées. Les mots de passe devraient être stockés dans un environnement plus sécurisé. C’est pourquoi nous avons introduit une nouvelle inspection pour vous aider à trouver ces mots de passe dans votre code : HardcodedPasswords.

Par défaut, l’inspection signale les variables ayant des valeurs correspondant aux règles d’expressions régulières intégrées pour les mots de passe codés en dur. Elle prend actuellement en charge JavaScript, TypeScript, Java, Kotlin, Groovy, PHP, Go, Python, C#, JSON, YAML et XML.

Comment détecter les mots de passe codés en dur, signaler les variables avec des noms suspects et implémenter vos propres règles d’expressions régulières

Cette inspection est activée par défaut dans Qodana. Si vous avez un profil d’inspection personnalisé, vous devez activer l’inspection dans votre profil qodana.yaml de la façon suivante : 

include:
  - name: "HardcodedPasswords"
Détection des mots de passe codés en dur avec Qodana 2024.2
Exemple de résultat d’une inspection de mots de passe codés en dur.

De plus, vous pouvez examiner les variables ayant un nom suspect, tel que token ou password, et une valeur de chaîne constante. Pour activer cette option, ajoutez la configuration suivante dans qodana.yaml :

hardcodedPasswords:
  reportDefaultSuspiciousVariableNames: true

Vous pouvez également implémenter vos propres règles d’expressions régulières pour détecter, signaler ou ignorer les valeurs ou les noms de variables, ce qui vous permet de créer des règles personnalisées flexibles.

Voici un exemple de configuration de règles personnalisées dans qodana.yaml :

hardcodedPasswords:
  # regex rules for variable values to report as hardcoded password
  variableValues:
    - "(?i)(xoxe-d-[A-Z0-9]{146})"
    - "perm:(?[a-zA-Z=.0-9]{96}|[a-zA-Z=.0-9]{64})"
	
  # regex rules for variable names to report as hardcoded password
  variableNames:
    - "youtrack"
	 
  # regex rules for variable values to ignore (not report) as hardcoded password
  ignoreVariableValues:
    - "do-not-report-this-value"
    
  # regex rules for variable names to ignore (not report) as hardcoded password
  ignoreVariableNames:
    - "^(?=.*bteamcityb)(?=.*bkeyb).*$"
Regardez la vidéo ci-dessus pour voir to la détection de mot de passe codé en dur se déroule.

Nouvelles fonctionnalités et inspections pour le linter Qodana-Android

Dans cette version, le nouveau linter qodana-android fournit des fonctionnalités avancées dans le cadre du forfait Qodana Ultimate, spécialement conçues pour les projets Android. Elles incluent notamment l’analyse de la couverture du code et les recherches de vulnérabilités. Cela vous permet d’obtenir :

  • des inspections complètes : le linter qodana-android inclut toutes les inspections de la version Community et les inspections supplémentaires fournies par le linter qodana-jvm. Cela permet d’identifier aussi bien les problèmes propres à Android que ceux qui sont liés au langage dans vos projets.
  • une analyse optimisée : les fonctionnalités de Qodana Ultimate permettent d’analyser plus en détail vos projets Android, ce qui améliore la qualité du code (avec l’inspection Code Coverage) et la sécurité (avec le vérificateur de vulnérabilités).

Activez le linter qodana-android en le spécifiant dans votre fichier qodana.yaml :

linter: jetbrains/qodana-android:2024.2

Vous pouvez également passer par la ligne de commande :

--linter jetbrains/qodana-android:2024.2

Veuillez noter que les inspections contenues dans les bibliothèques externes et les inspections écrites par l’utilisateur ne sont pas prises en charge dans cette version.

Grâce au linter qodana-android, vous passez à un niveau supérieur dans l’analyse de vos projets Android, car il garantit que les problèmes de qualité du code propres à Android comme les problèmes de qualité du code plus généraux soient traités.

Correctifs rapides dans Qodana for .NET : signalé, identifié, corrigé !

Le linter qodana-dotnet prend désormais en charge les correctifs rapides, ce qui vous permet d’améliorer votre code automatiquement et plus facilement. Vous pouvoir opter pour les stratégies cleanup et apply afin de traiter efficacement les problèmes identifiés. Votre équipe dispose ainsi des avantages suivants : 

  • Amélioration automatique du code : comme les autres lintersde Qodana, les correctifs rapides de qodana-dotnet simplifient le processus de correction des problèmes de code là où les corrections automatiques sont possibles.
  • Flexibilité avec les stratégies : le linter prend en charge deux stratégies, cleanup et apply, ce qui vous donne le contrôle sur la façon dont les correctifs sont implémentés.

Comment utiliser les correctifs rapides

Pour exécuter le linter qodana-dotnet avec la stratégie apply, utilisez la commande suivante :

docker run  -v $(pwd)/:/data/project/  -e QODANA_TOKEN="your Qodana Cloud Token"  jetbrains/qodana-dotnet:2024.2  --apply-fixes # use --cleanup for cleanup strategy

Modifications et mises à jour concernant les inspections

  • Le linter qodana-php inclut désormais les inspections JavaScript par défaut, ce qui permet d’analyser les projets PHP et JavaScript/TypeScript en même temps.
  • Les inspections Android lint sont désormais intégrées dans les linters qodana-android-community et (nouveauté) qodana-android afin de répondre aux problèmes de performances et de sécurité propores à Android et de vous aider à trouver de nouveaux bugs.
  • Le linter qodana-clang est maintenant disponible avec différentes versions de clang-compiler (15–18), ce qui vous laisse le choix de la version à utiliser. Le linter par défaut qodana-clang:latest utilise la version 16 du compilateur Clang. Pour l’exécuter avec une autre version, vous devez le spécifier dans le nom du linter :
linter: jetbrains/qodana-clang:2024.2-eap-clang #(for example, jetbrains/qodana-clang:2024.2-eap-clang18)

De plus, de nombreuses modifications ont été apportées aux inspections afin de faciliter l’identification des erreurs potentielles, telles la comparaison d’une expression à elle-même, et de rendre votre code plus robuste.

Étapes suivantes

Si vous utilisez la balise latest, vous n’avez rien à faire pour pouvoir profiter des avantages de Qodana 2024.2. Sinon, veuillez passer de la version 2024.1 à 2024.2 pour procéder à la mise à jour. Les utilisateurs de GitHub Actions, Azure DevOps et Circle CI trouveront la dernière version de l’extension ici.

Elle offre davantage de possibilités pour améliorer votre expérience avec Qodana 2024.2. Pour plus d’informations, y compris des instructions détaillées pour chaque fonctionnalité, veuillez consulter notre documentation officielle. Vous pouvez également suivre l’actualité de Qodana en rejoignant nos communautés sur :

Voir la documentation de la version

Auteur de l’article original en anglais :

Kerry Beetge

Kerry Beetge

Qodana Advocate, Tech Journalist and IoT enthusiast.

image description

Discover more