対象: C:\Users\kawag\work 配下の全Webアプリケーション(9プロジェクト) | 実施日: 2026-02-13
| # | プロジェクト | 脆弱性 | 修正内容 | 状態 |
|---|---|---|---|---|
| 1 | drawing-cognitive-test | SQLインジェクション | パラメータバインド化 (src/worker/index.ts) |
完了 |
| 2 | visitcare | DEV_BYPASS_AUTH 本番漏洩リスク | NODE_ENV === 'development' 条件追加 |
完了 |
| 3 | visitcare | Server Action 権限昇格 | getServerSession() で認証チェック追加 |
完了 |
| 4 | visitcare | Firestore ルール不完全 | 7コレクション (visits, visit_records, care_plans, claims, medications, vital_records, family_contacts) のルール追加 | 完了 |
| 5 | hirakata-pt-hp | SHA-256 + ハードコードソルト | PBKDF2 (100,000回) + ランダムソルトに移行。旧形式との後方互換性維持 | 完了 |
| # | プロジェクト | 修正内容 | 状態 |
|---|---|---|---|
| 6 | endai-system | セキュリティヘッダー追加 (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy) | 完了 |
| 7 | endai-system | auth/callback オープンリダイレクト防止 (protocol-relative URL 拒否) | 完了 |
| 8 | endai-system | Cron API 認証の !cronSecret チェック追加 | 完了 |
| 9 | endai-system | IP ベースレート制限追加 (PDF: 1分5回, API: 1分60回) | 完了 |
| 10 | visitcare | セキュリティヘッダー追加 + /preview 認証保護追加 | 完了 |
| 11 | visitcare | 12ファイルから患者データの console.log 削除 | 完了 |
| 12 | hirakata-pt-hp | XSS エスケープ追加 (escapeHtml, sanitizeUrl) + 管理API CORS制限 | 完了 |
| 13 | bento_order_web | Worker API 認証追加 (API_SECRET_KEY) + エラー情報隠蔽 + .gitignore修正 | 完了 |
| 14 | updrs-tracker | API 認証追加 + 入力バリデーション + CORS制限 + エラー隠蔽 | 完了 |
| 15 | dementia-cf-suite | API 認証追加 + CORS制限 + セキュリティヘッダー + エラー隠蔽 | 完了 |
| # | プロジェクト | 修正内容 | 状態 |
|---|---|---|---|
| 16 | endai-system | メールテンプレート全6種のHTMLエスケープ追加 | 完了 |
| 17 | endai-system | sales-inquiry.ts HTMLエスケープ + SALES_EMAIL 環境変数化 | 完了 |
| 18 | endai-system | appUrl ハードコードを環境変数化 | 完了 |
| 19 | endai-system | PDF API エラーメッセージから内部情報を除去 | 完了 |
| 20 | endai-system | auth 登録エラーメッセージから内部情報を除去 | 完了 |
| 21 | endai-system | ilike 検索の LIKE ワイルドカードエスケープ | 完了 |
HIGH
registrations_update_service ポリシーが FOR UPDATE USING (true) で設定されており、anon key ユーザーでも任意の登録ステータスを書き換えられるリスクがあるregistrations_insert_public ポリシーが WITH CHECK (true) で設定されており、大量の偽登録が作成されるリスクがある対応方法: Supabase ダッシュボード > Authentication > Policies で registrations テーブルの RLS ポリシーを確認し、UPDATE ポリシーにはサービスロールのみ許可する条件を追加してください。INSERT は CAPTCHA やレート制限との組み合わせを検討してください。
HIGH
DISABLE_RLS_FOR_TESTING.sql が存在対応方法: Supabase ダッシュボードで全テーブルの RLS 有効状態を確認してください。テスト用の無効化が残っていれば、適切なポリシーを設定して有効化してください。
HIGH
対応方法: Firebase Console > Firestore > ルール で現在のセキュリティルールを確認してください。「テストモード」(全許可)のままであれば、認証ベースのルールに変更してください。
MEDIUM
60 * 60 * 24 * 5 * 1000)推奨: 8〜24時間に短縮してください。
src/app/api/auth/session/route.ts の expiresIn を変更。
MEDIUM
src/worker/index.ts の ALLOWED_ORIGINS に本番ドメインを追加src/worker/index.ts の ALLOWED_ORIGINS に本番ドメインを追加対応方法: 本番デプロイ先のドメイン(例: https://your-app.pages.dev)を ALLOWED_ORIGINS 配列に追加してください。
MEDIUM
API_SECRET_KEY を設定API_SECRET_KEY を設定API_SECRET_KEY を設定対応方法: 各デプロイ環境のダッシュボードで、十分な長さのランダム文字列を API_SECRET_KEY として設定してください。フロントエンド側のAPIリクエストにも Authorization: Bearer <key> ヘッダーを追加してください。
生成例: openssl rand -base64 32
MEDIUM
verifyPassword() は旧形式との後方互換性があるため、既存ログインは動作する対応方法: 管理者にパスワード変更を依頼してください。変更後は新しいPBKDF2形式でハッシュが保存されます。旧形式でのログイン成功時に自動的にPBKDF2形式に更新するマイグレーション処理の追加も検討してください。
MEDIUM
GET /api/badges?conferenceId=xxx に明示的な認証チェックがない対応方法: src/app/api/badges/route.ts に管理者認証チェックを追加してください。
MEDIUM
'use client' で、クライアントサイドの onAuthStateChanged のみで認証チェックgetServerSession() が定義済みだが、ダッシュボードページからは呼ばれていない対応方法: ダッシュボードの layout.tsx を Server Component 化し、getServerSession() でサーバーサイド認証を行うか、API Route 経由でトークン検証を行ってください。
MEDIUM
推奨: 本格運用には Upstash Redis Rate Limiting や Vercel WAF の導入を検討してください。
| プロジェクト | ファイル | 主な変更 |
|---|---|---|
| endai-system | next.config.ts | セキュリティヘッダー追加 |
| src/middleware.ts | レート制限追加 | |
| src/app/auth/callback/route.ts | オープンリダイレクト防止 | |
| src/app/api/cron/review-reminders/route.ts | Cron認証強化 | |
| src/lib/email.ts | メールテンプレートHTMLエスケープ | |
| src/lib/actions/sales-inquiry.ts | HTMLエスケープ + 環境変数化 | |
| src/lib/actions/registration.ts | appUrl 環境変数化 | |
| src/lib/actions/auth.ts | エラーメッセージ安全化 | |
| src/lib/actions/checkin.ts | ilike ワイルドカードエスケープ | |
| visitcare | next.config.ts | セキュリティヘッダー追加 |
| src/lib/firebase/middleware.ts | DEV_BYPASS_AUTH修正 + /preview保護 | |
| src/app/actions/auth.ts | Server Action認証追加 | |
| firestore.rules | 7コレクションのルール追加 | |
| + (dashboard)配下12ファイルから console.log 削除 | ||
| hirakata-pt-hp | functions/api/admin/login.js | PBKDF2移行 + CORS制限 |
| functions/api/admin/init.js | PBKDF2移行 | |
| public/js/main.js | XSSエスケープ追加 | |
| drawing-cognitive-test | src/worker/index.ts | SQLインジェクション修正 + CORS制限 + エラー隠蔽 |
| bento_order_web | workers/src/index.ts | API認証追加 + エラー隠蔽 |
| .gitignore | .env 除外追加 | |
| updrs-tracker | api/sheets.ts | API認証 + バリデーション + CORS制限 |
| api/reminder.ts | 認証強化 + エラー隠蔽 | |
| dementia-cf-suite | src/worker/index.ts | API認証 + CORS制限 + エラー隠蔽 |
| OWASP Top 10 | endai-system | visitcare | hirakata-pt-hp | drawing-cognitive-test | bento_order_web | updrs-tracker | dementia-cf-suite |
|---|---|---|---|---|---|---|---|
| A01 アクセス制御 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |
| A02 暗号化 | 対策済 | 対策済 | 対策済 | - | - | - | - |
| A03 インジェクション | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |
| A04 安全でない設計 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |
| A05 セキュリティ設定ミス | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |
| A06 脆弱コンポーネント | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |
| A07 認証の失敗 | 対策済 | 要確認 | 対策済 | - | 対策済 | - | - |
| A08 データ整合性 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |
| A09 ログ・モニタリング | 対策済 | 対策済 | 対策済 | 要確認 | 対策済 | 要確認 | 要確認 |
| A10 SSRF | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 | 対策済 |