# 在代码中查找现有漏洞

Copilot 对话助手 可以帮助查找代码中的常见漏洞并提供修复建议。

虽然许多开发人员认为它们是“常识”，但新出现的绝大多数安全漏洞都是由于跨站点脚本攻击 (XSS)、SQL 注入和跨站点请求伪造 (CSRF) 等漏洞引起的。 可以通过遵循安全编码实践来缓解这些漏洞，例如使用参数化查询、输入验证，以及避免使用硬编码敏感数据。 GitHub Copilot 可以帮助检测和解决这些问题。

> \[!NOTE] 虽然 Copilot Chat 可以帮助查找一些常见的安全漏洞并帮助修复它们，但不应依赖 Copilot 全面的安全分析。 使用 code scanning 将更彻底地确保代码安全。 有关设置 code scanning的详细信息，请参阅 [配置代码扫描的默认设置](/zh/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning)。

## 示例方案

下面的 JavaScript 代码存在潜在的 XSS 漏洞，如果 `name` 参数在显示到页面之前未被正确清理，攻击者可能会利用这个漏洞。

```javascript id=potential-xss
function displayName(name) {
  const nameElement = document.getElementById('name-display');
  nameElement.innerHTML = `Showing results for "${name}"`
}
```

## 示例提示

可以要求 Copilot Chat 分析代码是否存在常见的安全漏洞，并为找到的问题提供解释和修复。

```copilot copy prompt ref=potential-xss
Analyze this code for potential security vulnerabilities and suggest fixes.
```

## 示例响应

> \[!NOTE] 以下响应是示例。 Copilot Chat 的回答是不确定的，因此你可能会得到与这里所显示的不同的回答。

Copilot 响应漏洞的说明，并建议对代码进行更改以修复它。

```javascript
function displayName(name) {
  const nameElement = document.getElementById('name-display');
  nameElement.textContent = `Showing results for "${name}"`;
}
```

## 延伸阅读

* [GitHub Copilot 对话助手的提示设计](/zh/copilot/concepts/prompting/prompt-engineering)
* [使用 GitHub Copilot 的最佳做法](/zh/copilot/get-started/best-practices)
* [代码扫描](/zh/code-security/concepts/code-scanning/code-scanning)