なぜ「個人開発者向け」のセキュリティ記事が必要か
Claude Codeのセキュリティ事故事例は最近多く語られていますが、その多くは「企業の本番環境」想定の話です。
一方、個人開発者やフリーランスがClaude Codeを使うとき、もっと身近で踏みやすい落とし穴があります。
この記事では、個人開発者が実際に踏みやすい3つのセキュリティ事故 と、それを CLAUDE.md で防ぐ実践パターンを紹介します。
事故1: 環境変数(API key)をコミットしてしまう
最も多い事故です。
.env ファイルや、ハードコードしたAPIキーを誤ってコミット → GitHubにpushされる → 数時間で悪用される。実際にFirebase + Geminiで13時間で約900万円請求された事例も話題になりました。
CLAUDE.mdで防ぐ
## セキュリティ規約
- **絶対に守ること**: APIキー、パスワード、トークンを含むファイル(.env, credentials.json 等)をコミットしない
- 新しい認証情報を追加する場合、必ず .gitignore に追加してから作業を開始する
- コード内にAPIキーを直書きしない。必ず環境変数(process.env.XXX)から読み込む
- コミット前に `git diff --staged | grep -iE "api[_-]?key|secret|password|token"` で再確認する
このように 「絶対に守ること」 として明記すると、Claude Codeが自発的にチェックするようになります。
事故2: 想定外のファイルを書き換える
Claude Codeに「ログイン機能を追加して」と指示したら、設定ファイルや本番DBの接続情報まで書き換えられた というケースがあります。
特に .env.local や next.config.js のような設定ファイルは、AIが「リファクタリング」のつもりで触ってしまうことがあります。
CLAUDE.mdで防ぐ
## ファイル変更ルール
- 以下のファイルは **絶対に編集しない**:
- .env, .env.local, .env.production
- next.config.js, package.json の依存関係(追加は別途確認)
- .github/workflows/*.yml
- migrations/ 配下の既存ファイル
- 上記ファイルの変更が必要な場合、**ユーザーに変更内容を提案して許可を得てから** 編集する
PreToolUse フックと組み合わせるとさらに堅牢です。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "echo $TOOL_INPUT | jq -r '.file_path' | grep -qE '\.env|next\.config\.js' && echo 'BLOCKED: Protected file' && exit 1 || exit 0"
}
]
}
}
事故3: SQLインジェクション可能なコードを書かれる
「ユーザー検索機能を実装して」と頼んだら、文字列連結でSQLを組み立てるコードを書かれた。レビューせずにそのままmainにマージ → SQLインジェクション脆弱性が本番に出る。
個人開発でユーザー認証や検索機能を実装するときに踏みやすい落とし穴です。
CLAUDE.mdで防ぐ
## SQL/データベース規約
- **必須**: SQL組み立ては必ずパラメータ化クエリ(プリペアドステートメント)を使う
- 文字列連結(template literal の `${}` 含む)でSQLを組み立てない
- ORM(Prisma, TypeORM等)を使っている場合、生SQL($queryRaw, query等)を避け、型付きAPIを使う
- ユーザー入力をそのままWHERE句やORDER BYに使わない(whitelist方式で許可リスト化)
- 新しいSQLを書いたら、SQLインジェクション可能性をセルフレビューしてから実装完了とする
「規約」だけでなく「セルフレビュー」を仕組み化する
上記の3つに共通するのは、Claude Code自身に「コミット前のセルフチェック」を要求する ことです。
## コミット前チェックリスト
新しいコードをコミットする前に、必ず以下を自分でチェックする:
1. APIキー・認証情報がコード内に書かれていないか
2. .env や設定ファイルを誤って変更していないか
3. SQLは全てパラメータ化されているか
4. 外部入力をエスケープせずに使っていないか
5. エラーメッセージにスタックトレースなどの内部情報を返していないか
チェック結果を箇条書きで報告してから「コミット準備完了」と判断する。
これを CLAUDE.md に書いておくと、Claude Codeが毎回「セルフレビュー結果」を出力してくれます。
個人開発者向けのまとめ
セキュリティ事故は「企業の話」ではなく、個人開発者にとっても切実な問題です。特にAPIキー漏洩は、夜に寝てる間に課金が爆増する恐ろしいパターンです。
CLAUDE.md は、AIに「ルール」を渡すだけでなく、「ルールを守ったかセルフチェックさせる」 仕組みとして使うと、防御力が格段に上がります。
最初は3つの規約から始めて、自分のプロジェクトに合わせて拡張していくのがおすすめです。
Claude Codeを安全に使うためのメンタリングをMENTAで提供しています。→ https://menta.work/plan/20251
YouTubeでもAI×プログラミングの情報を発信中 → https://www.youtube.com/channel/UC1rXVD9WYsQPQEWZyd-A1KA/