16
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人開発者がClaude Codeで気をつけたい3つのセキュリティ事故 — CLAUDE.mdで防ぐ実践パターン

16
Posted at

なぜ「個人開発者向け」のセキュリティ記事が必要か

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.localnext.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/

16
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?