Engineering

全プロジェクト横断セキュリティレビュー&メジャーアップグレード完了

EnablerDAOの全6プロジェクトに対する包括的なセキュリティレビュー、バグ修正、CLIツール開発、Next.js 16メジャーアップグレードの詳細レポート。

#security #review #next.js #cli #deploy

概要

EnablerDAOでは、運営する全プロジェクトに対して包括的なセキュリティレビューとコード品質改善を実施しました。6つのプロジェクトを並列でレビュー・テスト・修正し、すべてのビルドが通ることを確認した上でデプロイまで完了しています。

対象プロジェクト

プロジェクト技術スタック修正内容
Elio Chat iOSSwift / SwiftUIAPI整合性、HTTP status check、@StateObject修正
elio-apiCloudflare Workers / TypeScriptAPI一貫性、重複排除、エラーレスポンス統一
NanobotRust / AxumCORS設定、セッションID形式、SSEイベント処理
EnablerDAONext.js 16 / TypeScriptXSS対策、Webhook認証、レースコンディション修正
DojoCNext.js 16 / TypeScriptメジャーアップグレード(14→16)、セキュリティ脆弱性全解消

セキュリティ修正の詳細

XSS対策(EnablerDAO)

メール自動返信のWebhookで、ユーザー入力がHTMLにエスケープなしで埋め込まれていた問題を修正。escapeHtml関数を追加し、&, <, >, ", 'の5文字をエンティティに変換するようにしました。

Webhook認証の強化

Resend Webhookのリクエストに対して、HMAC-SHA256署名検証を実装。crypto.timingSafeEqualによるタイミングセーフな比較で、署名偽造攻撃を防止します。

レースコンディション対策

Q&Aストアのファイル書き込みにロック機構を追加。複数のリクエストが同時にファイルを書き込んだ際にデータが破損する問題を解消しました。

EnablerDAO CLIツールの開発

enablerdaoコマンドをターミナルから使えるCLIツールを新規開発しました。

インストール方法

curl -fsSL https://enablerdao.com/install.sh | bash

主なコマンド

  • enablerdao projects — 全13+プロジェクト一覧表示
  • enablerdao status — 全サービスのライブHTTPステータス確認
  • enablerdao repos — GitHubリポジトリ一覧(gh CLI連携)
  • enablerdao work <repo> — Fork→Clone→Claude Code起動で開発開始
  • enablerdao pr <repo> — コミット→PR作成を自動化

sudo不要、Node.js不要のPOSIX準拠シェルスクリプトとして実装。macOS / Linux / WSLで動作します。

Next.js 16 メジャーアップグレード(DojoC)

DojoC(セキュリティ教育プラットフォーム)をNext.js 14.2.5からNext.js 16.1.6にメジャーアップグレードしました。

対応した破壊的変更

1. React 18 → 19: react/react-dom をv19に更新 2. params の非同期化: 動的ルートのparamsPromise<>型に変更し、awaitで取得するように修正 3. searchParams の非同期化: チェックアウト成功ページのsearchParamsも同様に修正 4. next.config.js → next.config.ts: ESM形式に移行

セキュリティ改善

  • 修正前: 11件の脆弱性(1 critical: Authorization Bypass)
  • 修正後: 0件(Next.js関連すべて解消)
  • ビルド時間: ~20s → 9.0s(Turbopack)

テスト結果

全6プロジェクトで並列テストを実施し、すべてパスしました。

テスト結果
Elio iOS Xcode buildBUILD SUCCEEDED
elio-api tsc --noEmit0 errors
Nanobot cargo check + clippy0 errors
EnablerDAO Next.js build16/16 pages OK
DojoC Next.js build24/24 pages OK

デプロイ

修正完了後、EnablerDAOとDojoCの両サイトをFly.io(東京リージョン)にデプロイ。ダウンタイムなしのローリングデプロイで更新が完了しています。

まとめ

今回のレビューでは、AI支援による並列コードレビューの手法を採用しました。6プロジェクトのレビュー、修正、テスト、デプロイまでを一連のワークフローとして実行し、プロジェクト間の整合性を確保しています。

EnablerDAOはオープンソースプロジェクトです。コードはGitHubで公開しており、誰でもレビュー・貢献できます。