Actions
이슈 #449
진행중
HP
HP
Phase 4-2 — Vega per-app origin/path isolation
이슈 #449:
Phase 4-2 — Vega per-app origin/path isolation
시작일:
2026/05/19
완료일:
진척도:
100%
추정시간:
설명
배경¶
Phase 4-1 (#446 누적, commit:server2|ba291bb 외) 의 capability cookie + Web SDK + /__alphea/fs gateway 는 CSRF + accidental cross-app guard 까지 닫지만, same-origin scripting 한계 가 남아 있다. 코드와 docstring (internal/handler/capability_gateway.go::checkCSRFClaim, capability.go) 에 이 한계가 명시되어 있고, Phase 4 로드맵의 키 단점으로 표시되어 있다.
시나리오: window.open 으로 victim app runtime window 를 잡고 거기서 alphea.fs.* 호출하면 victim 의 cookie + Referer 가 따라가서 통과한다. 이건 sandbox 가 아니다.
진짜 cross-app isolation 은 이 이슈에서 처리.
범위¶
-
isolation 모델 결정: per-app subdomain (
app1.0xabc.alphea.local형식 — 최소한 HTTPS 도메인 구조 변경) 또는 per-app cookie/gateway path 분리 (같은 origin, cookie path/scope 강화) - runtime URL 구조 갱신 (
/d/<ns_type>/<ns_id>/<app_id>/...가 이 결정을 반영) - capability cookie scope 갱신 — per-app 으로 재발급
- Runtime HTML / Web SDK / gateway 의 origin 검증 강화 (아니면 same-origin 자체를 제거)
- Phase 4-1 docstring 의 보안 매트릭스 갱신 (
capability_gateway.go::checkCSRFClaim, 로드맵 §Phase 4) - smoke + handler test 커버리지 (공격 시나리오가 실제로 차단되는지)
디자인 reference¶
- 로드맵 §Phase 4 (Web SDK / Gateway API)
-
internal/handler/capability_gateway.go::checkCSRFClaimdocstring — 현재 보안 양의 한계 명시 -
internal/handler/capability.go의 capability cookie scope 논리
DoD¶
- isolation 모델 결정 (subdomain vs per-app cookie path) — trade-off matrix 에서 하나 선택
- runtime URL 구조 + capability cookie scope 갱신
-
cross-app
window.open시나리오가 실제로 차단됨을 wire 검증 - docstring + 로드맵 §Phase 4 갱신
- Web Console Test Client Section D 에 cross-app 시나리오 smoke 도구 추가 (선택적)
관련¶
Actions