Aunque muchos desarrolladores pueden considerarlos "conocimiento común", la gran mayoría de los puntos débiles de seguridad recién introducidos se deben a vulnerabilidades como el scripting entre sitios (XSS), la inyección de código SQL y la falsificación de solicitudes entre sitios (CSRF). Estas vulnerabilidades se pueden mitigar mediante prácticas de codificación segura, como usar consultas con parámetros, validar las entradas y evitar datos confidenciales codificados de forma rígida. GitHub Copilot puede ayudar a detectar y resolver estos problemas.
Note
Aunque el Copilot Chat puede ayudar a encontrar algunas vulnerabilidades de seguridad comunes y corregirlas, no debes confiar en Copilot para un análisis de seguridad exhaustivo. El uso de herramientas y características de seguridad garantizará con mayor exhaustividad la seguridad del código. Para obtener más información sobre las características de seguridad de GitHub, consulta Características de seguridad de GitHub.
Escenario de ejemplo
El código de JavaScript siguiente tiene una posible vulnerabilidad de XSS que podría aprovecharse si el parámetro name
no se sanea correctamente antes de mostrarse en la página.
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.innerHTML = `Showing results for "${name}"`
}
Ejemplos de indicaciones
Puedes pedir al Copilot Chat que analice el código para detectar vulnerabilidades de seguridad comunes y que proporcione explicaciones y correcciones para los problemas que encuentre.
Analyze this code for potential security vulnerabilities and suggest fixes.
Respuesta de ejemplo
Note
La respuesta siguiente es un ejemplo. Las respuestas de Copilot Chat no son deterministas, por lo que puedes obtener una respuesta diferente a la aquí mostrada.
Copilot responde con una explicación de la vulnerabilidad y con cambios sugeridos en el código para su corrección.
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.textContent = `Showing results for "${name}"`;
}