Claude CodeのプラグインでCodeX(GPT5.6 Sol)を動かして、再びシステムのレビューを実施させてみる・・・さて、レビューに強いと言われているCodeXの実力は
今までCuade Fable5で2回レビューを実施して修正後の結果は
- 実施: Codexプラグイン(GPT-5.6 Sol)による全コードベースレビュー(読み取り専用・9分41秒)
- 観点: (1)セキュリティ(テナント分離・認可・XSS/CSRF/SQLi) (2)正確性 (3)アーキテクチャ
- 結果: Critical 0件 / High 4件 / Medium 9件 / Low 4件(合計17件)
- Codex session:
評価
- SQLインジェクション: whereRaw等は固定文字列のみ、ユーザー入力連結なし
- CSRF迂回: 通常の変更系ルートはwebミドルウェア配下で迂回なし
- テナントトレイト: A/B/C分類モデルへの適用に明白な抜けなし
- 既知残課題(unsafe-inline・session success非表示・同一秒ロック)は件数から除外
High4件
- H-1. RA・安全パトロール添付ファイルが認可なしで公開
- H-2. 施工計画書テンプレートCSV取込/出力の認可漏れ
- H-3. 工程表名のStored XSS(未エスケープJSON出力)
- H-4. 施工計画書diagramノードHTMLのStored XSS(未サニタイズ)
Medium(9件)
- 監査系コントローラにrole=1例外なし
- 関連IDのテナント検証漏れ
- 関連IDのテナント検証漏れ
- 同一秒内の楽観ロック偽陰性
- 祝日計算の特例未対応
- 工程表保存のバリデーション不足
- 循環ネットワーク検出漏れ
- 監査回数の採番競合
- 写真ファイル名競合・拡張子不一致
Low(4件)
- 写真アップロードにサイズ・ピクセル上限なし(GDデコードのメモリ消費・環境設定要確認)
- 稼働日・祝日計算がNetwork/BarChartに重複(CLAUDE.md共通化ルール違反・実装が既に分岐)
- テナント分離find()テストが設計表の全モデル未網羅(回帰リスク)
- /clear-cache がGETで状態変更(CSRF検証なし)
CodeXのレビュー内容を、Claude codeで是正させる
GPT-5.6 Solによる全コードベースレビュー(High4・Medium9・Low4)の是正。
High 4件+Medium 8件+Low 3件を是正し、本番デプロイ完了・・全138テストパス
バッチ1
- H-1 RA/パトロール添付: 非公開ディスク(storage/app/private)保存に変更、表示は認可付きルート経由(risk_assessments.viewAttachment/safety_patrols.attachment 新設)。旧public側フォールバック付き AttachmentStorage 新設。テスト8件
- H-2 テンプレートCSV取込/出力: authorizeTemplateAdmin 適用(一般ユーザーの全社共通テンプレ作成を封鎖)+CSVインジェクション対策。テスト4件
- H-3 工程表名JSON出力: JSON_HEX_TAG 等でscript脱出を遮断(barchart/network。maintenanceは対策済確認)
- H-4 図面ノードHTML: 専用サニタイザー sanitizeDiagramHtml(HTMLPurifier・図面表現の許可リスト)を保存時に適用
バッチ2
- M-5 監査系5コントローラにrole=1全テナント横断例外+一覧全社表示+ISO参照を計画の所属会社基準に
- M-6 auditor_user_id/target_id/ヘッダーフッターテンプレIDを自社(または共通)所属に限定
- M-7 `AuditChecklist::firstOrCreate を楽観ロック内へ(初回作成経路テスト追加)
- M-12 監査回数採番をトランザクション+lockForUpdate
- M-13 パトロール写真の連番採番→一意サフィックス化・再エンコード後の拡張子自動補正(ImageUploadService共通対応)
バッチ3
- M-9/L-15 app/Services/WorkdayCalculator.php 新設(両工程表の重複実装を集約)。振替休日の繰越・国民の休日・五輪特例(2020/2021)・即位関連(2019)・法改正年度に対応。ユニットテスト7件
- M-10 工程表保存/計算のバリデーション強化(arrows/tasks/connectionsの中身検証・欠落キー500を4xx化)
- M-11 循環ネットワークをカーン法の件数チェックで検出→422明示エラー
- L-14 写真アップロードに20MB・8000×8000px上限
- L-17 /clear-cache POST化+管理者メンテにボタン新設
対応しなかった項目
- M-8(同一秒内の楽観ロック偽陰性): 設計書で受容判断済みのため対応せず
- L-16(テナント分離テストの全モデル網羅): 効果あるが工数大・別途判断
- パトロール「写真」・現場写真・会社ロゴのpublicディスク保存はH-1の対象外(添付書類のみ移行)。必要なら別フェーズで検討





