---
generated_at: 2026-02-27 12:00:00
metrics:
  claims_total: 28
  claims_with_evidence: 22
  claims_without_evidence: 6
confidence_derived: 0.79
---

# 根拠レポート：セキュリティ設計書

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.79**
  - 根拠あり：22 / 28、根拠なし：6
- 優先レビュー（高）
  1. **認証設計の拡張ポイント説明**：フレームワーク本体のコードには直接的根拠がなく、Vue.jsエコシステムの一般知識に基づく
  2. **認可設計の拡張ポイント説明**：同上
  3. **CSRF対策のフレームワーク連携パターン**：フレームワーク本体にはCSRFトークン関連の実装がない
  4. **DevToolsバッファの3,000ms自動クリア**：具体的なタイマー値の確認が必要
  5. **セキュリティ方針の記述**：SECURITY.mdの内容に基づくが、設計意図の解釈を含む
  6. **パフォーマンス計測の詳細**：開発環境限定であることの明確な根拠の確認

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/shared/src/escapeHtml.ts` — HTMLエスケープ関数の実装
- E-02: `packages/shared/src/escapeHtml.ts` (行47-51) — HTMLコメントエスケープ関数
- E-03: `packages/shared/src/escapeHtml.ts` (行54-63) — CSS変数名エスケープ関数
- E-04: `packages/server-renderer/src/helpers/ssrInterpolate.ts` — SSR補間テキストエスケープ
- E-05: `packages/server-renderer/src/helpers/ssrRenderAttrs.ts` (行27-79) — SSR属性レンダリング・検証
- E-06: `packages/shared/src/domAttrConfig.ts` (行36-47) — 安全な属性名判定 `isSSRSafeAttrName()`
- E-07: `packages/runtime-dom/src/nodeOps.ts` (行9-27) — Trusted Typesポリシー作成
- E-08: `packages/runtime-dom/src/nodeOps.ts` (行34-35) — `unsafeToTrustedHTML` 関数
- E-09: `packages/runtime-dom/src/modules/events.ts` (行127-136) — イベントハンドラ検証 `sanitizeEventValue()`
- E-10: `packages/compiler-dom/src/transforms/vHtml.ts` — v-htmlコンパイル時検証
- E-11: `packages/runtime-dom/src/modules/props.ts` (行6-23) — innerHTML/textContent安全処理
- E-12: `packages/compiler-dom/src/transforms/stringifyStatic.ts` (行309, 373-375) — 静的コンテンツエスケープ
- E-13: `packages/runtime-dom/src/nodeOps.ts` (行99-138) — 静的コンテンツの安全な挿入
- E-14: `SECURITY.md` — セキュリティ脆弱性報告フロー・XSS方針
- E-15: `packages/runtime-core/src/warning.ts` — 警告・エラーハンドリング
- E-16: `packages/runtime-core/src/profiling.ts` — Performance API連携
- E-17: `packages/runtime-core/src/devtools.ts` — DevToolsバッファ管理
- E-18: `packages/runtime-dom/src/patchProp.ts` (行114-118) — iframe sandbox属性保護
- E-19: `packages/shared/src/domAttrConfig.ts` (行14-34) — Boolean属性定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | テンプレート補間はすべて `escapeHtml()` により自動エスケープされる | E-01, E-04 | ○ |
| C-02 | エスケープ対象は5文字（`"&'<>`）である | E-01 | ○ |
| C-03 | HTMLコメント危険パターンが `escapeHtmlComment()` で除去される | E-02 | ○ |
| C-04 | CSS変数名の特殊文字がエスケープされる | E-03 | ○ |
| C-05 | SSR時も同等のエスケープが保証される | E-04, E-05 | ○ |
| C-06 | 安全でない属性名（`>`, `/`, `=`, `"`, `'` 等を含む）が拒否される | E-06 | ○ |
| C-07 | Trusted Typesポリシー `vue` が作成されCSPに準拠する | E-07 | ○ |
| C-08 | `innerHTML` 設定時に `unsafeToTrustedHTML()` を経由する | E-08, E-11, E-13 | ○ |
| C-09 | Trusted Typesポリシー重複時にエラーハンドリングが行われる | E-07 | ○ |
| C-10 | イベントハンドラとして不正な値が渡された場合にNOOPに置換される | E-09 | ○ |
| C-11 | `v-html` はコンパイル時に式の有無と子要素の存在を検証する | E-10 | ○ |
| C-12 | 静的コンテンツの文字列化時にエスケープされる | E-12 | ○ |
| C-13 | iframe sandbox属性はDOM属性として設定される | E-18 | ○ |
| C-14 | セキュリティ脆弱性報告先は `security@vuejs.org` | E-14 | ○ |
| C-15 | テンプレート式経由のXSSはフレームワークの脆弱性として扱わない方針 | E-14 | ○ |
| C-16 | 開発環境の警告はコンポーネントトレース付きで `console.warn` に出力 | E-15 | ○ |
| C-17 | `app.config.warnHandler` で警告をカスタマイズ可能 | E-15 | ○ |
| C-18 | `app.config.errorHandler` でエラーをカスタマイズ可能 | E-15 | ○ |
| C-19 | `app.config.performance = true` でパフォーマンス計測が有効化される | E-16 | ○ |
| C-20 | DevToolsイベント（`app:init`, `component:added` 等）が発火される | E-17 | ○ |
| C-21 | Boolean属性の安全な処理が実装されている | E-19 | ○ |
| C-22 | SSR属性レンダリングで動的属性値がエスケープされる | E-05 | ○ |
| C-23 | 認証機能のフレームワーク拡張ポイント（ルーターガード、リアクティブ状態管理等） | **根拠なし** | △ |
| C-24 | 認可機能のフレームワーク拡張ポイント（カスタムディレクティブ、provide/inject等） | **根拠なし** | △ |
| C-25 | CSRFトークンのヘッダー付与パターンをサポート | **根拠なし** | △ |
| C-26 | DevToolsバッファの3,000ms後自動クリア | E-17 | △ |
| C-27 | パフォーマンス計測は開発環境のみで動作する | E-16 | △ |
| C-28 | `__DEV__` フラグにより本番ビルドから開発コードがツリーシェイクされる | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **認証・認可の拡張ポイント**: フレームワーク本体のコードに直接的な実装根拠がない。vue-routerやVuexなどエコシステムパッケージの設計ドキュメントを参照すべき
  - 候補：vue-router ソースコード / Vuex/Pinia ソースコード / 公式ドキュメント
- **CSRFトークン連携パターン**: フレームワーク本体にCSRFトークン関連の実装がなく、Axiosなど外部HTTPクライアントとの連携パターンに基づく記述
  - 候補：公式ドキュメント / エコシステムパッケージドキュメント
- **`__DEV__` ツリーシェイク**: ビルド設定（rollup.config.js等）でのグローバル変数定義を確認すべき
  - 候補：ビルド設定ファイル / package.json scripts
- **DevToolsバッファクリアタイマー**: 正確な値（3,000ms）の確認が必要
  - 候補：`packages/runtime-core/src/devtools.ts` の詳細確認

## 5) リスクフラグ（レビュー観点）
- **リスク0（低）**: XSS対策の自動エスケープ実装 — コードで明確に確認済み
- **リスク0（低）**: Trusted Types対応 — コードで明確に確認済み
- **リスク0（低）**: 属性名・値の検証 — コードで明確に確認済み
- **リスク1（中）**: 認証・認可の拡張ポイント記述 — フレームワーク本体外の知識に依存
- **リスク1（中）**: CSRF対策の連携パターン記述 — フレームワーク本体に直接実装なし
- **リスク1（中）**: `__DEV__` ツリーシェイクの記述 — ビルド設定の確認が不十分
- **リスク0（低）**: ログ・監査関連 — コードで確認済みだが一部詳細は要検証

## 6) レビュアーチェックリスト（最小）
- [ ] C-23: 認証拡張ポイント（ルーターガード等）の記述が正確か、vue-routerの実装と整合しているか確認
- [ ] C-24: 認可拡張ポイント（カスタムディレクティブ等）の記述が正確か確認
- [ ] C-25: CSRFトークン連携パターンの記述が実態に即しているか確認
- [ ] C-26: DevToolsバッファの自動クリアタイマー値（3,000ms）が正確か `devtools.ts` で確認
- [ ] C-28: `__DEV__` フラグによるツリーシェイクがビルド設定で正しく構成されているか確認
- [ ] 全体: クライアントサイドフレームワークの責務範囲の記述が適切か確認
