虽然许多开发人员认为它们是“常识”,但新出现的绝大多数安全漏洞都是由于跨站点脚本攻击 (XSS)、SQL 注入和跨站点请求伪造 (CSRF) 等漏洞引起的。 可以通过遵循安全编码实践来缓解这些漏洞,例如使用参数化查询、输入验证,以及避免使用硬编码敏感数据。 GitHub Copilot 可以帮助检测和解决这些问题。
Note
虽然 Copilot Chat 可以帮助发现一些常见的安全漏洞并帮助修复它们,但你不应仅依赖 Copilot 进行全面的安全分析。 使用 code scanning 将更彻底地确保代码安全。 有���如何设置 code scanning 的详细信息,请参阅“配置代码扫描的默认设置”。
示例方案
下面的 JavaScript 代码存在潜在的 XSS 漏洞,如果 name
参数在显示到页面之前未被正确清理,攻击者可能会利用这个漏洞。
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.innerHTML = `Showing results for "${name}"`
}
示例提示
你可以请求 Copilot Chat 分析代码中的常见安全漏洞,并提供它所发现的问题的解释和修复方案。
Analyze this code for potential security vulnerabilities and suggest fixes.
示例响应
Note
以下响应是示例。 Copilot Chat 响应是不确定的,所以你可能会得到与这里所显示的不同的响应。
Copilot 会提供关于漏洞的解释,并建议对代码进行更改以修复该问题。
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.textContent = `Showing results for "${name}"`;
}