{"id":525792,"date":"2024-11-12T15:13:56","date_gmt":"2024-11-12T14:13:56","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=qodana&#038;p=525792"},"modified":"2024-11-12T15:38:14","modified_gmt":"2024-11-12T14:38:14","slug":"publication-de-qodana-2024-2-linter-android-ameliore-detection-des-mots-de-passe-codes-en-dur-et-bien-plus","status":"publish","type":"qodana","link":"https:\/\/blog.jetbrains.com\/fr\/qodana\/2024\/11\/publication-de-qodana-2024-2-linter-android-ameliore-detection-des-mots-de-passe-codes-en-dur-et-bien-plus\/","title":{"rendered":"Publication de Qodana 2024.2 : linter Android am\u00e9lior\u00e9, d\u00e9tection des mots de passe cod\u00e9s en dur et bien plus"},"content":{"rendered":"<p>La version 2024.2 de Qodana apporte de nombreuses nouvelles fonctionnalit\u00e9s et am\u00e9liorations ! Ces mises \u00e0 jour majeures renforcent la s\u00e9curit\u00e9, \u00e9tendent la compatibilit\u00e9 et simplifient le travail des \u00e9quipes de d\u00e9veloppement qui cherchent \u00e0 am\u00e9liorer la qualit\u00e9 du code.<\/p>\n<p>Voici les nouveaut\u00e9s de cette version :<\/p>\n<div id=\"rank-math-toc\" class=\"wp-block-rank-math-toc-block\">\n<h2>Table des mati\u00e8res<\/h2>\n<nav>\n<ul>\n<li><a href=\"#hardcoded-password-detection\">D\u00e9tection des mots de passe cod\u00e9s en dur<\/a><\/li>\n<li><a href=\"#new-features-and-inspections-for-the-qodana-android-linter\">Nouvelles fonctionnalit\u00e9s et inspections pour le linter Qodana-Android<\/a><\/li>\n<li><a href=\"#quick-fixes-in-qodana-for-net-flagged-found-fixed\">Correctifs rapides dans Qodana pour .NET : signal\u00e9, identifi\u00e9, corrig\u00e9 !<\/a><\/li>\n<li><a href=\"#inspection-changes-and-updates\">Modifications et mises \u00e0 jour concernant les inspections<\/a><\/li>\n<\/ul>\n<\/nav>\n<\/div>\n<p align=\"center\"><a class=\"jb-download-button\" title=\"Voir la documentation de Qodana 2024.2\" href=\"https:\/\/www.jetbrains.com\/help\/qodana\/new-in-2024-2.html\" target=\"_blank\" rel=\"noopener noreferrer\"><i class=\"download-icon\"><\/i>Voir la documentation de Qodana 2024.2<\/a><\/p>\n<h3 id=\"hardcoded-password-detection\" class=\"wp-block-heading\"><strong>D\u00e9tection des mots de passe cod\u00e9s en dur<\/strong><\/h3>\n<p>Les mots de passe cod\u00e9s en dur peuvent constituer un probl\u00e8me de s\u00e9curit\u00e9 majeur, car lorsqu&#8217;ils sont expos\u00e9s, les attaquants peuvent les utiliser pour faire fuiter des donn\u00e9es et acc\u00e9der \u00e0 des informations sensibles, notamment dans les applications open-source ou distribu\u00e9es. Les mots de passe devraient \u00eatre stock\u00e9s dans un environnement plus s\u00e9curis\u00e9. C&#8217;est pourquoi nous avons introduit une nouvelle inspection pour vous aider \u00e0 trouver ces mots de passe dans votre code : <code>HardcodedPasswords<\/code><strong>.<\/strong><\/p>\n<p>Par d\u00e9faut, l&#8217;inspection signale les variables ayant des valeurs correspondant aux r\u00e8gles d&#8217;expressions r\u00e9guli\u00e8res int\u00e9gr\u00e9es pour les mots de passe cod\u00e9s en dur. Elle prend actuellement en charge JavaScript, TypeScript, Java, Kotlin, Groovy, PHP, Go, Python, C#, JSON, YAML et XML.<\/p>\n<p><strong>Comment d\u00e9tecter les mots de passe cod\u00e9s en dur, signaler les variables avec des noms suspects et impl\u00e9menter vos propres r\u00e8gles d&#8217;expressions r\u00e9guli\u00e8res<\/strong><\/p>\n<p>Cette inspection est activ\u00e9e par d\u00e9faut dans Qodana. Si vous avez un profil d&#8217;inspection personnalis\u00e9, vous devez activer l&#8217;inspection dans votre profil qodana.yaml de la fa\u00e7on suivante :\u00a0<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">include:\n  - name: \"HardcodedPasswords\"<\/pre>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-514181\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/09\/Untitled-9.png\" alt=\"D\u00e9tection des mots de passe cod\u00e9s en dur avec Qodana 2024.2\" width=\"2598\" height=\"750\" \/><figcaption class=\"wp-element-caption\">Exemple de r\u00e9sultat d&#8217;une inspection de mots de passe cod\u00e9s en dur.<\/figcaption><\/figure>\n<p>De plus, vous pouvez examiner les variables ayant un nom suspect, tel que <code>token<\/code> ou <code>password<\/code>, et une valeur de cha\u00eene constante. Pour activer cette option, ajoutez la configuration suivante dans qodana.yaml :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">hardcodedPasswords:\n  reportDefaultSuspiciousVariableNames: true<\/pre>\n<p>Vous pouvez \u00e9galement impl\u00e9menter vos propres r\u00e8gles d&#8217;expressions r\u00e9guli\u00e8res pour d\u00e9tecter, signaler ou ignorer les valeurs ou les noms de variables, ce qui vous permet de cr\u00e9er des r\u00e8gles personnalis\u00e9es flexibles.<\/p>\n<p>Voici un exemple de configuration de r\u00e8gles personnalis\u00e9es dans qodana.yaml :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">hardcodedPasswords:\n  # regex rules for variable values to report as hardcoded password\n  variableValues:\n    - \"(?i)(xoxe-d-[A-Z0-9]{146})\"\n    - \"perm:(?[a-zA-Z=.0-9]{96}|[a-zA-Z=.0-9]{64})\"\n\t\n  # regex rules for variable names to report as hardcoded password\n  variableNames:\n    - \"youtrack\"\n\t \n  # regex rules for variable values to ignore (not report) as hardcoded password\n  ignoreVariableValues:\n    - \"do-not-report-this-value\"\n    \n  # regex rules for variable names to ignore (not report) as hardcoded password\n  ignoreVariableNames:\n    - \"^(?=.*bteamcityb)(?=.*bkeyb).*$\"<\/pre>\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"I Put a Hardcoded Password in a JetBrains Repository\u2026\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/Y80rIKoSSSU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Regardez la vid\u00e9o ci-dessus pour voir to la d\u00e9tection de mot de passe cod\u00e9 en dur se d\u00e9roule. <\/figcaption><\/figure>\n\n\n<h3 id=\"new-features-and-inspections-for-the-qodana-android-linter\" class=\"wp-block-heading\"><strong>Nouvelles fonctionnalit\u00e9s et inspections pour le linter Qodana-Android<\/strong><\/h3>\n<p>Dans cette version, le nouveau linter <code>qodana-android<\/code> fournit des fonctionnalit\u00e9s avanc\u00e9es dans le cadre du forfait Qodana Ultimate, sp\u00e9cialement con\u00e7ues pour les projets Android. Elles incluent notamment l&#8217;analyse de la couverture du code et les recherches de vuln\u00e9rabilit\u00e9s. Cela vous permet d&#8217;obtenir :<\/p>\n<ul>\n<li><strong>des inspections compl\u00e8tes :<\/strong> le linter <code>qodana-android<\/code> inclut toutes les inspections de la version Community et les inspections suppl\u00e9mentaires fournies par le linter qodana-jvm. Cela permet d&#8217;identifier aussi bien les probl\u00e8mes propres \u00e0 Android que ceux qui sont li\u00e9s au langage dans vos projets.<\/li>\n<li><strong>une analyse optimis\u00e9e :<\/strong> les fonctionnalit\u00e9s de Qodana Ultimate permettent d&#8217;analyser plus en d\u00e9tail vos projets Android, ce qui am\u00e9liore la qualit\u00e9 du code (avec l&#8217;inspection Code Coverage) et la s\u00e9curit\u00e9 (avec le v\u00e9rificateur de vuln\u00e9rabilit\u00e9s).<\/li>\n<\/ul>\n<p>Activez le linter <code>qodana-android<\/code> en le sp\u00e9cifiant dans votre fichier qodana.yaml :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">linter: jetbrains\/qodana-android:2024.2<\/pre>\n<p>Vous pouvez \u00e9galement passer par la ligne de commande :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">--linter jetbrains\/qodana-android:2024.2<\/pre>\n<p>Veuillez noter que les inspections contenues dans les biblioth\u00e8ques externes et les inspections \u00e9crites par l&#8217;utilisateur ne sont pas prises en charge dans cette version.<\/p>\n<p>Gr\u00e2ce au linter <code>qodana-android<\/code>, vous passez \u00e0 un niveau sup\u00e9rieur dans l&#8217;analyse de vos projets Android, car il garantit que les probl\u00e8mes de qualit\u00e9 du code propres \u00e0 Android comme les probl\u00e8mes de qualit\u00e9 du code plus g\u00e9n\u00e9raux soient trait\u00e9s.<\/p>\n<h3 id=\"quick-fixes-in-qodana-for-net-flagged-found-fixed\" class=\"wp-block-heading\"><strong>Correctifs rapides dans Qodana for .NET : signal\u00e9, identifi\u00e9, corrig\u00e9 !<\/strong><\/h3>\n<p>Le linter <code>qodana-dotnet<\/code> prend d\u00e9sormais en charge les correctifs rapides, ce qui vous permet d&#8217;am\u00e9liorer votre code automatiquement et plus facilement. Vous pouvoir opter pour les strat\u00e9gies <code>cleanup<\/code> et <code>apply<\/code> afin de traiter efficacement les probl\u00e8mes identifi\u00e9s. Votre \u00e9quipe dispose ainsi des avantages suivants :\u00a0<\/p>\n<ul>\n<li><strong>Am\u00e9lioration automatique du code :<\/strong> comme les autres lintersde Qodana, les correctifs rapides de qodana-dotnet simplifient le processus de correction des probl\u00e8mes de code l\u00e0 o\u00f9 les corrections automatiques sont possibles.<\/li>\n<li><strong>Flexibilit\u00e9 avec les strat\u00e9gies :<\/strong> le linter prend en charge deux strat\u00e9gies, cleanup et apply, ce qui vous donne le contr\u00f4le sur la fa\u00e7on dont les correctifs sont impl\u00e9ment\u00e9s.<\/li>\n<\/ul>\n<p><strong>Comment utiliser les correctifs rapides<\/strong><\/p>\n<p>Pour ex\u00e9cuter le linter <code>qodana-dotnet<\/code> avec la strat\u00e9gie <code>apply<\/code>, utilisez la commande suivante :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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<\/pre>\n<h3 id=\"inspection-changes-and-updates\" class=\"wp-block-heading\"><strong>Modifications et mises \u00e0 jour concernant les inspections<\/strong><\/h3>\n<ul>\n<li>Le linter <code>qodana-php<\/code> inclut d\u00e9sormais les inspections JavaScript par d\u00e9faut, ce qui permet d&#8217;analyser les projets PHP et JavaScript\/TypeScript en m\u00eame temps.<\/li>\n<li>Les inspections Android lint sont d\u00e9sormais int\u00e9gr\u00e9es dans les linters <code>qodana-android-community<\/code> et (nouveaut\u00e9) <code>qodana-android<\/code> afin de r\u00e9pondre aux probl\u00e8mes de performances et de s\u00e9curit\u00e9 propores \u00e0 Android et de vous aider \u00e0 trouver de nouveaux bugs.<\/li>\n<li>Le linter <code>qodana-clang<\/code> est maintenant disponible avec diff\u00e9rentes versions de clang-compiler (15\u201318), ce qui vous laisse le choix de la version \u00e0 utiliser. Le linter par d\u00e9faut <code>qodana-clang:latest<\/code> utilise la version 16 du compilateur Clang. Pour l&#8217;ex\u00e9cuter avec une autre version, vous devez le sp\u00e9cifier dans le nom du linter :<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">linter: jetbrains\/qodana-clang:2024.2-eap-clang #(for example, jetbrains\/qodana-clang:2024.2-eap-clang18)<\/pre>\n<p>De plus, de nombreuses modifications ont \u00e9t\u00e9 apport\u00e9es aux inspections afin de faciliter l&#8217;identification des erreurs potentielles, telles la comparaison d&#8217;une expression \u00e0 elle-m\u00eame, et de rendre votre code plus robuste.<\/p>\n<h2 id=\"what-to-do-next\" class=\"wp-block-heading\">\u00c9tapes suivantes<\/h2>\n<p>Si vous utilisez la balise <code>latest<\/code>, vous n&#8217;avez rien \u00e0 faire pour pouvoir profiter des avantages de Qodana 2024.2. Sinon, veuillez passer de la version 2024.1 \u00e0 2024.2 pour proc\u00e9der \u00e0 la mise \u00e0 jour. Les utilisateurs de GitHub Actions, Azure DevOps et Circle CI trouveront la derni\u00e8re version de l&#8217;extension <a href=\"https:\/\/www.jetbrains.com\/help\/qodana\/ci.html\" target=\"_blank\" rel=\"noreferrer noopener\">ici<\/a>.<\/p>\n<p>Elle offre davantage de possibilit\u00e9s pour am\u00e9liorer votre exp\u00e9rience avec Qodana 2024.2. Pour plus d&#8217;informations, y compris des instructions d\u00e9taill\u00e9es pour chaque fonctionnalit\u00e9, veuillez consulter notre documentation officielle. Vous pouvez \u00e9galement suivre l&#8217;actualit\u00e9 de Qodana en rejoignant nos communaut\u00e9s sur :<\/p>\n<ul>\n<li><a href=\"https:\/\/www.reddit.com\/r\/Qodana\/\" target=\"_blank\" rel=\"noopener\">Reddit<\/a><\/li>\n<li><a href=\"https:\/\/www.linkedin.com\/showcase\/qodana\/\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><\/li>\n<li><a href=\"https:\/\/x.com\/Qodana\" target=\"_blank\" rel=\"noopener\">X<\/a><\/li>\n<\/ul>\n<p align=\"center\"><a class=\"jb-download-button\" title=\"Voir la documentation de la version\" href=\"https:\/\/www.jetbrains.com\/help\/qodana\/new-in-2024-2.html\" target=\"_blank\" rel=\"noopener noreferrer\"><i class=\"download-icon\"><\/i>Voir la documentation de la version<\/a><\/p>\n\n\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/03\/kerry-beetge.256x256.jpg\" width=\"200\" height=\"200\" alt=\"Kerry Beetge\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                            <h4>Kerry Beetge<\/h4>\n                                        <p>Qodana Advocate, Tech Journalist and IoT enthusiast.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":517324,"comment_status":"closed","ping_status":"closed","template":"","categories":[89,6924],"tags":[991,228,76,6359],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana\/525792"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/qodana"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=525792"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana\/525792\/revisions"}],"predecessor-version":[{"id":525890,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana\/525792\/revisions\/525890"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/517324"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=525792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=525792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=525792"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=525792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}