# コード内の既存の脆弱性を見つける

Copilot Chat を使うと、コード内の一般的な脆弱性を見つけて、修正の提案を受けることができます。

このようなことは多くの開発者が "常識" と考えるかもしれませんが、新たに発生するセキュリティ上の弱点の大部分は、クロスサイト スクリプティング (XSS)、SQL インジェクション、クロスサイト リクエスト フォージェリ (CSRF) などの脆弱性に起因しています。 このような脆弱性を軽減するには、パラメーター化されたクエリの使用、入力の検証、ハードコーディングされた機密データの回避など、セキュリティで保護されたコーディング手法に従います。 GitHub Copilot は、これらの問題を検出して解決するのに役立ちます。

> \[!NOTE]
> Copilot Chatは、一般的なセキュリティの脆弱性を見つけて修正するのに役立ちますが、包括的なセキュリティ分析のためにCopilotに頼るべきではありません。
> code scanningを使用すると、コードのセキュリティが強化されます。
> code scanningの設定の詳細については、[AUTOTITLE を](/ja/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 Chat のプロンプト エンジニアリング](/ja/copilot/concepts/prompting/prompt-engineering)
* [GitHub Copilot の使用に関するベスト プラクティス](/ja/copilot/get-started/best-practices)
* [コード スキャン](/ja/code-security/concepts/code-scanning/code-scanning)