Qodana
The code quality platform for teams
Publication de Qodana 2024.2 : linter Android amélioré, détection des mots de passe codés en dur et bien plus
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 :
Table des matières
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"
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).*$"
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éfautqodana-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 :