このようなことは多くの開発者が "常識" と考えるかもしれませんが、新たに発生するセキュリティ上の弱点の大部分は、クロスサイト スクリプティング (XSS)、SQL インジェクション、クロスサイト リクエスト フォージェリ (CSRF) などの脆弱性に起因しています。 このような脆弱性を軽減するには、パラメーター化されたクエリの使用、入力の検証、ハードコーディングされた機密データの回避など、セキュリティで保護されたコーディング手法に従います。 GitHub Copilot は、これらの問題を検出して解決するのに役立ちます。
メモ
コパイロットチャットは、一般的なセキュリティの脆弱性を見つけて修正するのに役立ちますが、包括的なセキュリティ分析のためにCopilotに頼るべきではありません。 code scanningを使用すると、コードのセキュリティが強化されます。 code scanningの設定の詳細については、AUTOTITLE を参照してください。
サンプル シナリオ
以下の JavaScript コードには潜在的な XSS の脆弱性があり、ページに表示される前に name パラメーターを適切にサニタイズしないと、悪用される可能性があります。
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.innerHTML = `Showing results for "${name}"`
}
プロンプトの例
コードで一般的なセキュリティの脆弱性を分析し、検出された問題の説明と修正を提供するように コパイロットチャット に依頼できます。
Analyze this code for potential security vulnerabilities and suggest fixes.
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.innerHTML = `Showing results for "${name}"`
}
Analyze this code for potential security vulnerabilities and suggest fixes.
Analyze this code for potential security vulnerabilities and suggest fixes.
応答の例
メモ
次の応答は例です。 コパイロットチャット の応答は非決定的であるため、ここで示したものとは異なる応答が返される可能性があります。
Copilot は、脆弱性の説明と、それを修正するためのコードに対する推奨される変更で応答します。
function displayName(name) {
const nameElement = document.getElementById('name-display');
nameElement.textContent = `Showing results for "${name}"`;
}