{"meta":{"title":"Recherchez et corrigez votre première vulnérabilité de dépendance","intro":"Découvrez comment sécuriser vos dépendances en activant Dependabot et ses fonctionnalités dans un référentiel de démonstration.","product":"Bien démarrer","breadcrumbs":[{"href":"/fr/get-started","title":"Bien démarrer"},{"href":"/fr/get-started/learning-to-code","title":"Apprendre à coder"},{"href":"/fr/get-started/learning-to-code/finding-and-fixing-your-first-dependency-vulnerability","title":"Sécurisez vos dépendances"}],"documentType":"article"},"body":"# Recherchez et corrigez votre première vulnérabilité de dépendance\n\nDécouvrez comment sécuriser vos dépendances en activant Dependabot et ses fonctionnalités dans un référentiel de démonstration.\n\nL’utilisation de collections de code pré-écrites dans votre projet, appelées **bibliothèques** ou **packages**, est une pratique courante. Ces modules de code vous font gagner un temps considérable, vous permettant ainsi de vous concentrer sur les aspects nouveaux et créatifs de votre travail plutôt que de coder de gros composants réutilisables depuis zéro. Lorsqu’ils sont ajoutés à votre projet, ils sont appelés **dépendances**, car votre travail dépend du code qu’ils contiennent.\n\nMême si l’utilisation de dépendances est parfaitement normale, ces dernières peuvent contenir des vulnérabilités de code, qui pourraient à leur tour compromettre la sécurité de votre projet. Heureusement, les outils comme Dependabot peuvent trouver des vulnérabilités de dépendance, déclencher des demandes de tirage pour les corriger, et même les empêcher de se produire à l’avenir. Dans ce tutoriel, vous allez apprendre à activer et à utiliser Dependabot et ses fonctionnalités pour sécuriser vos dépendances.\n\n## Configuration du référentiel de démonstration\n\nCommençons par dupliquer (fork) un projet de démonstration présentant certaines vulnérabilités de dépendances. Comme nous ne déploierons pas le projet, cet exercice ne présente **aucun risque pour la sécurité**.\n\n1. Naviguez jusqu’au référentiel [`new2code/dependabot-demo`](https://github.com/new2code/dependabot-demo).\n2. En haut à droite de la page, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-repo-forked\" aria-label=\"repo forked icon\" role=\"img\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z\"></path></svg>**Fork**.\n3. Sur la page qui s’affiche, cliquez sur **Créer une duplication (fork)**.\n\n## Activation des fonctionnalités de sécurité des dépendances\n\nMaintenant que nous avons configuré le projet, nous allons configurer Dependabot pour rechercher et créer des correctifs pour les dépendances non sécurisées.\n\n1. Dans la barre de navigation de votre référentiel, cliquez sur **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality**.\n2. Dans la ligne «Dependabot alerts », cliquez sur **Activer Dependabot alerts**.\n3. Dans la section «Dependabot », en regard de «Dependabot alerts », cliquez sur **Activer**.\n4. Dans la fenêtre contextuelle qui s’affiche, lisez l’instruction concernant l’activation du graphe des dépendances, puis cliquez sur **Activer**.\n5. Pour permettre à Dependabot d'ouvrir automatiquement des pull requests pour corriger les vulnérabilités de dépendance, à côté de «Dependabot security updates », cliquez sur **Activer**.\n\n## Affichage de vos dépendances non sécurisées\n\nAvec Dependabot configuré, nous allons découvrir quelles dépendances contiennent des vulnérabilités.\n\n1. Dans la barre de navigation de votre référentiel, cliquez sur **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality**.\n2. Pour afficher le Dependabot alerts de votre dépôt, dans la navigation latérale, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-dependabot\" aria-label=\"dependabot icon\" role=\"img\"><path d=\"M5.75 7.5a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 .75-.75Zm5.25.75a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0v-1.5Z\"></path><path d=\"M6.25 0h2A.75.75 0 0 1 9 .75V3.5h3.25a2.25 2.25 0 0 1 2.25 2.25V8h.75a.75.75 0 0 1 0 1.5h-.75v2.75a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V9.5H.75a.75.75 0 0 1 0-1.5h.75V5.75A2.25 2.25 0 0 1 3.75 3.5H7.5v-2H6.25a.75.75 0 0 1 0-1.5ZM3 5.75v6.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75h-8.5a.75.75 0 0 0-.75.75Z\"></path></svg>**Dependabot**.\n3. Pour afficher des informations détaillées sur une alerte, cliquez sur le titre de l’alerte. Pour cet exercice, cliquez sur **Injection de commande dans hot-formula-parser**.\n\n## Comprendre une alerte Dependabot\n\nMaintenant que Dependabot a identifié certaines vulnérabilités dans nos dépendances, analysons les informations fournies dans l’alerte « Injection de commandes dans l’analyseur de formule à chaud ».\n\n### Résumé du correctif\n\nSous le titre de l’alerte, vous trouverez un bref résumé du **correctif** apporté à cette vulnérabilité, y compris le nombre d’alertes qu’il va fermer et l’emplacement de la vulnérabilité. Dans notre cas, l’alerte nous indique que la mise à niveau du package vers la `hot-formula-parser` version 3.0.1 corrige une Dependabot alerte identifiée dans notre `javascript/package-lock.json` fichier.\n\nCette section suit également la progression de la création d'une pull request pour corriger la vulnérabilité. Une fois qu’un correctif est disponible, vous verrez un bouton intitulé «<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-dependabot\" aria-label=\"dependabot icon\" role=\"img\"><path d=\"M5.75 7.5a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 .75-.75Zm5.25.75a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0v-1.5Z\"></path><path d=\"M6.25 0h2A.75.75 0 0 1 9 .75V3.5h3.25a2.25 2.25 0 0 1 2.25 2.25V8h.75a.75.75 0 0 1 0 1.5h-.75v2.75a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V9.5H.75a.75.75 0 0 1 0-1.5h.75V5.75A2.25 2.25 0 0 1 3.75 3.5H7.5v-2H6.25a.75.75 0 0 1 0-1.5ZM3 5.75v6.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75h-8.5a.75.75 0 0 0-.75.75Z\"></path></svg> Examiner la mise à jour de sécurité » lié à la pull request.\n\n![Capture d’écran de la section récapitulative des correctifs d’une alerte Dependabot.](/assets/images/help/dependabot/dependabot-alert-fix-summary.png)\n\n### Détails de la vulnérabilité\n\nSous les détails du correctif, Dependabot fournit plus d’informations sur la vulnérabilité, notamment :\n\n* Le nom du package vulnérable\n* Les versions du package qui contiennent la vulnérabilité\n* La version du package qui corrige la vulnérabilité\n* Les détails sur le type de vulnérabilité et comment elle peut être exploitée\n\n![Capture d’écran de la section détaillant la vulnérabilité d’une alerte Dependabot.](/assets/images/help/dependabot/dependabot-alert-vulnerability-details.png)\n\nDans cette alerte, nous pouvons voir que la fonction `parse` du package `hot-formula-parser` ne vérifie pas correctement que les entrées utilisateur sont sécurisées avant de les exécuter, ce qui permet aux attaquants d’exécuter des commandes malveillantes.\n\n> \\[!TIP] Si vous ne comprenez pas entièrement les détails de la vulnérabilité, essayez de demander à quelqu'un de vous les expliquer.\n\n### Durée\n\nEnfin, vous pouvez voir la chronologie de l’alerte en bas de la page. Notre chronologie contient actuellement l’horodatage lors Dependabot de l’ouverture de l’alerte et sera automatiquement mis à jour lorsque nous corrigeons la vulnérabilité.\n\n![Capture d’écran de la chronologie d’une alerte Dependabot.](/assets/images/help/dependabot/dependabot-alert-timeline.png)\n\n## Sécurisation de vos dépendances\n\nPour sécuriser rapidement et facilement notre projet, nous allons appliquer le correctif Dependabot créé.\n\n1. Dans le champ d’alerte avec le résumé du correctif, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-dependabot\" aria-label=\"dependabot icon\" role=\"img\"><path d=\"M5.75 7.5a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 .75-.75Zm5.25.75a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0v-1.5Z\"></path><path d=\"M6.25 0h2A.75.75 0 0 1 9 .75V3.5h3.25a2.25 2.25 0 0 1 2.25 2.25V8h.75a.75.75 0 0 1 0 1.5h-.75v2.75a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V9.5H.75a.75.75 0 0 1 0-1.5h.75V5.75A2.25 2.25 0 0 1 3.75 3.5H7.5v-2H6.25a.75.75 0 0 1 0-1.5ZM3 5.75v6.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75h-8.5a.75.75 0 0 0-.75.75Z\"></path></svg>**Vérifier la mise à jour de sécurité**.\n2. Dans la page de demande de tirage, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-file-diff\" aria-label=\"file diff icon\" role=\"img\"><path d=\"M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z\"></path></svg>**Fichiers modifiés** pour afficher Dependabotles modifications apportées. Après avoir examiné les modifications, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-comment-discussion\" aria-label=\"comment discussion icon\" role=\"img\"><path d=\"M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z\"></path></svg>**Conversation** pour revenir à la vue globale de la pull request.\n3. Pour appliquer la mise à jour, en bas de la page, cliquez sur **Fusionner la pull request**, puis cliquez sur **Confirmer la fusion**.\n\n   Une fois la requête de tirage fusionnée, l’alerte liée Dependabot se fermera automatiquement et l'heure de correction sera ajoutée à la frise chronologique.\n\n## Prévenir les futures vulnérabilités dans les dépendances\n\nPour éviter les dépendances non sécurisées, nous allons autoriser Dependabot à ouvrir automatiquement des pull requests pour mettre à jour vos dépendances au fur et à mesure que de nouvelles versions sont publiées.\n\n1. Dans la barre de navigation de votre référentiel, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear icon\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg>**Paramètres**.\n2. Dans la section « Sécurité » de la barre latérale, cliquez sur <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-codescan\" aria-label=\"codescan icon\" role=\"img\"><path d=\"M8.47 4.97a.75.75 0 0 0 0 1.06L9.94 7.5 8.47 8.97a.75.75 0 1 0 1.06 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0ZM6.53 6.03a.75.75 0 0 0-1.06-1.06l-2 2a.75.75 0 0 0 0 1.06l2 2a.75.75 0 1 0 1.06-1.06L5.06 7.5l1.47-1.47Z\"></path><path d=\"M12.246 13.307a7.501 7.501 0 1 1 1.06-1.06l2.474 2.473a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM1.5 7.5a6.002 6.002 0 0 0 3.608 5.504 6.002 6.002 0 0 0 6.486-1.117.748.748 0 0 1 .292-.293A6 6 0 1 0 1.5 7.5Z\"></path></svg>**Advanced Security**.\n3. À côté de \"Dependabot version updates\", cliquez sur **Activer**.\n\n## Étapes suivantes\n\nMaintenant que vous avez essayé Dependabot et ses fonctionnalités sur un référentiel de démonstration, **activez-les sur vos propres projets** pour rechercher, corriger et empêcher facilement les vulnérabilités des dépendances."}