docs(status): セキュリティ保留案件を他AI見解待ちとして記録
JWT localStorage設計とexpress.static公開範囲について Claude Codeが判断を留保した理由と問いを STATUS.md に追記。 他AIからの見解を求めるため。
This commit is contained in:
parent
33100d9efc
commit
f0c1ee452f
35
STATUS.md
35
STATUS.md
|
|
@ -102,6 +102,41 @@ node_modules/.bin/tauri build
|
||||||
| Store デザイン確定 | Eiji |
|
| Store デザイン確定 | Eiji |
|
||||||
| Stripe 本番切り替え | Store 確定・特商法記入 |
|
| Stripe 本番切り替え | Store 確定・特商法記入 |
|
||||||
|
|
||||||
|
## 他 AI に見解を求めている案件(2026-04-24 Claude Code が判断を留保)
|
||||||
|
|
||||||
|
以下は Claude Code が「対応しない」と判断したセキュリティ案件。設計の妥当性・代替案・優先度について他 AI の意見を求めている。
|
||||||
|
|
||||||
|
### 1. JWT を localStorage に保存している問題(#25, #26, #31)
|
||||||
|
|
||||||
|
**場所**: `posimai-dashboard/src/app/auth/verify/page.tsx`、`login/page.tsx`、`posimai-brain/js/utils/storage.js`
|
||||||
|
|
||||||
|
**Guard の指摘**: XSS 攻撃で JWT が盗まれる可能性。httpOnly Cookie に移行すべき。
|
||||||
|
|
||||||
|
**Claude Code が保留した理由**:
|
||||||
|
Posimai はクロスドメイン SSO を採用しており、JWT を URL パラメータでサブアプリに渡す設計になっている(例: `brain.posimai.soar-enrich.com?token=xxx`)。httpOnly Cookie はクロスドメインでは使えないため、単純な移行はできない。移行するには全サブアプリの認証フローを書き直す大規模リファクタが必要。
|
||||||
|
|
||||||
|
**見解を求めたい点**:
|
||||||
|
- この設計(URL パラメータ経由の JWT 受け渡し)は許容できるか
|
||||||
|
- httpOnly Cookie + バックエンドセッション方式への移行は現実的か
|
||||||
|
- localStorage XSS リスクを軽減する現実的な代替手段はあるか(例: `secure` フラグ付き sessionStorage、短い TTL 等)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. `express.static(__dirname)` が `requireLocal` なしで Tailscale 全体に公開されている問題
|
||||||
|
|
||||||
|
**場所**: `posimai-dev/server.js:44`
|
||||||
|
|
||||||
|
**Guard の指摘**: `requireLocal`(localhost/Tailscale限定)の保護なしに `express.static(path.join(__dirname))` が設定されているため、Tailscale ネットワーク上の全端末から `server.js` や `.env` などのファイルを URL で直接取得できる可能性がある。
|
||||||
|
|
||||||
|
**Claude Code が保留した理由**:
|
||||||
|
`requireLocal` は `::1`/`127.0.0.1`/`100.*`(Tailscale)を許可している。Tailscale は認証済みの信頼ネットワークなので、実害は低いと判断。ただし Tailscale 上の他端末(Eiji の PC 等)から `.env` の内容を読めるのは意図した設計かどうか不明。
|
||||||
|
|
||||||
|
**見解を求めたい点**:
|
||||||
|
- Tailscale 内でも `server.js` や `.env` を公開することは許容できるか
|
||||||
|
- `express.static` に `requireLocal` を適用するのは簡単だが、それにより現在機能している何かが壊れる可能性はあるか(`sessions.html` 等の静的ファイルはどこから読み込まれているか)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 保留中(着手条件あり)
|
## 保留中(着手条件あり)
|
||||||
|
|
||||||
| タスク | 条件 | 理由 |
|
| タスク | 条件 | 理由 |
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue