Bien qu’ils soient considérés comme des « connaissances communes » par de nombreux développeurs, la grande majorité des faiblesses de sécurité nouvellement introduites sont dues à des vulnérabilités telles que l’injection de scripts intersite (XSS), l’injection SQL et la falsification de requête intersite (CSRF). Ces vulnérabilités peuvent être atténuées en suivant des pratiques de codage sécurisées, telles que l'utilisation de requêtes paramétrées, la validation des entrées et l'absence de données sensibles codées en dur. GitHub Copilot peut vous aider à détecter et résoudre ces problèmes.
Note
Bien que Copilot Chat puisse aider à trouver certaines vulnérabilités de sécurité courantes et à les corriger, vous ne devez pas vous fier à Copilot pour une analyse de sécurité complète. L’utilisation d’outils et de fonctionnalités de sécurité garantit plus soigneusement la sécurité de votre code. Pour plus d'informations sur les fonctionnalités de sécurité GitHub, consultez Fonctionnalités de sécurité de GitHub.
Exemple de scénario
Le code JavaScript ci-dessous présente une vulnérabilité XSS potentielle qui peut être exploitée si le paramètre name
n’est pas correctement nettoyé avant d’être affiché sur la page.
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.innerHTML = `Showing results for "${name}"`
}
Exemples d’invite
Vous pouvez demander à Copilot Chat d'analyser le code à la recherche de failles de sécurité courantes et de fournir des explications et des correctifs pour les problèmes détectés.
Analyze this code for potential security vulnerabilities and suggest fixes.
Exemple de réponse
Note
La réponse suivante est un exemple. Copilot Chat Les réponses ne sont pas déterministes, il est donc possible que vous obteniez une réponse différente de celle présentée ici.
Copilot répond en expliquant la vulnérabilité et en suggérant des modifications du code pour la corriger.
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.textContent = `Showing results for "${name}"`;
}