GitHub Copilot を使ったソフトウェア開発
Thalia Barrera
AI Engineering Curriculum Manager, DataCamp

def get_user(username):
query = f"SELECT * FROM users \
WHERE username = '{username}'"
return db.execute(query)
攻撃者はSQLを注入できる:
usersテーブル全体をダンプする[screencast]
[screencast]
対象を絞ったレビュー
#selectionのSQLインジェクションとXSSの脆弱性を確認する
コードベース全体のスキャン
@workspaceでハードコードされた認証情報やAPIキーをスキャンする
[screencast]

防御的なコード生成
このエンドポイントに入力バリデーションを追加する。予期しない型を拒否し、長さ制限を適用する。
脆弱性を発見するだけでなく — 防止する
.github/copilot-instructions.md
## Security standards
- Use parameterized queries
- Never hardcode credentials or API keys
- Validate and sanitize all user input
- Use bcrypt or argon2 for password hashing
.github/instructions/security.instructions.md
applyTo: "**/*.py"
- Use secrets module instead of random for tokens
- Escape all user input in Jinja2 templates
✅ セキュリティがコードの書き方の一部になる
GitHub Copilot を使ったソフトウェア開発