はじめに

最近話題のAIツール「ClaudeCode」を使って、既存のLaravel + Vue3プロジェクトを自動分析してみました。この記事では、その分析結果と、どのようにセットアップしたか、さらにChatGPTとの併用方法も含めてご紹介します。


開発環境

  • OS: Windows 11
  • エディタ: Visual Studio Code (VSCode)
  • ターミナル環境: WSL2 (Ubuntu)

以降はClaudeCodeはインストール済みである前提です。

分析方法

今回は既存のLaravel + Vue3プロジェクトを対象に、以下のプロンプトを使いました:

Analyze this Laravel project and suggest improvements.

すると、下記のように「重大なセキュリティ問題(IMMEDIATE)」と「高優先度の改善(HIGH PRIORITY)」の2カテゴリに分けてレポートを生成してくれました。

出力結果(ChatGPTで翻訳済み)


重大なセキュリティ問題(IMMEDIATE)

  1. SQLインジェクション
    • DB::statement("set @total = ${total};") という記述が危険。
    • 解決策: DB::statement("set @total = ?", [$total]); への変更。
  2. XSS(クロスサイトスクリプティング)
    • Vueコンポーネントで v-html による未サニタイズHTMLの出力。
    • 解決策: v-htmlの使用を避け、{{ item.memo }} にDOMPurifyなどを併用。
  3. Mass Assignment(マスアサイン脆弱性)
    • User.phpemail_verified_at, stripe_customer_id$fillable にしている。
    • 解決策: $fillable の見直しと $guarded の併用。

高優先度の改善(HIGH PRIORITY)

  1. 大きすぎるコントローラの分割
    • WebPageGeneratorController.php に約700行の責務が集中。
    • 解決策: WebPageGeneratorService, VersionManagementService などに分離。
  2. 認可(Authorization)の強化
    • ポリシーが未設定、あるいは不統一。
    • 解決策: php artisan make:policy でリソースごとに設定。
  3. DB設計の不備
    • emailにユニーク制約がない、nullableの不統一、外部キー名の命名統一性の欠如。

中〜低優先度の改善(MEDIUM / LOW PRIORITY)

✅ 中〜低優先度の改善点として、以下のような指摘もありました:

  • バリデーション強化(FormRequestクラスの導入)
  • レートリミットの追加(APIでの濫用防止)
  • エラーハンドリングの整理(カスタム例外クラス)
  • パフォーマンス改善(インデックス追加、クエリ最適化)
  • テストの追加(Feature Test)

🛡️ Claudeによるセキュリティスコア:6/10
現状、運用前に対応必須なセキュリティリスクが複数あると明示されています。

特に「SQLインジェクション」「XSS」「Mass Assignment」は即修正推奨です。


次にどう動くべきか(おすすめプラン)

フェーズやること
🔥 すぐSQLインジェクション、XSS、mass assignmentの修正
📆 今週中コントローラの分割、認可ポリシーの導入、DB設計の見直し
🧪 来週以降テスト導入、FormRequestでのバリデーション強化、レート制限追加

[実際の出力結果]


以上がclaudeCodeでの出力結果です。

ChatGPTとの併用(翻訳・補助ツールとして活用)

ClaudeCodeは自動で分析してくれる点が強力ですが、改善内容の詳細な解説やコード例の生成にはChatGPTを併用しました。

たとえば:

  • Claudeが指摘したセキュリティ問題をChatGPTに「なぜ危険か?」「安全なコード例を出して」と聞く。
  • 改善方法の選択肢をいくつか提示してもらう。

こうすることで、より実践的な判断ができました。

また、ClaudeCodeは日本語でも動作しますが、英語でプロンプトを送るほうがより的確で詳細なアウトプットが得られる傾向があります。そのため、ChatGPTを併用することで、以下のような補完的な利点があります:

  • ClaudeCodeに渡すプロンプトを自然で適切な英語に翻訳してくれる
  • ClaudeCodeから返された英語の分析結果を、日本語でわかりやすく説明してくれる
  • 不明点がある場合、その場で日本語で深掘り質問ができる

英語が苦手な開発者でも、ChatGPTを組み合わせることでClaudeCodeの分析結果を理解・活用しやすくなり、非常に相性が良いと感じました。


使ってみた感想

今回はUdemyの某講座で提供されているLaravel + Vue3のプロジェクトを対象に、ClaudeCodeでコード分析を行ってみました。

使用している技術スタックに精通したベテランSEが数日間かけて行うような静的解析・セキュリティレビューを、数分で済ませられるような印象です。非常に強力で効率的なツールだと感じました。

ただし、当初チャージしていたクレジットは一瞬で消費され、追加で2,500円程度を課金することになりました。ログを確認したところ、一回の分析で約2ドル(300円程度)のクレジットを消費していたようです。

とはいえ、1回300円でベテランSEの数日分の作業が手に入ると考えれば、費用対効果はかなり高いと感じました。

まとめ

ClaudeCodeはLaravelのような中規模以上のプロジェクトでも、非常に素早く重要な問題点を洗い出してくれます。 ChatGPTと併用することで、分析結果を深く理解し、具体的な対応に繋げることができました。

今後はCI/CDの中にClaudeCodeによる分析も組み込んで、よりセキュアで保守性の高い開発を目指していきたいと思います。

投稿者 kojiro777

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です