Files
Gnuboard7/tests/scenarios/installer-session-cookie-probe.yaml
T
2026-05-14 11:13:08 +09:00

40 lines
1.9 KiB
YAML

# audit:allow test-scenario-coverage reason: 본 매니페스트는 신규 기능 시나리오 매트릭스 SSoT 로 기록. 회귀 가드는 test_files 의 통과 테스트로 커버.
feature: 인스톨러 세션 쿠키 round-trip 사전 진단
description: |
Step 0 (welcome) 진입 시 클라이언트 JS 가 set → verify 두 fetch 로 세션
쿠키 round-trip 동작을 확인. 브라우저가 PHPSESSID 쿠키를 차단/유실하여
세션이 매 요청 새로 생성되는 환경(`session.cookie_samesite=Strict` +
비표준 포트 + 일부 브라우저 정책 조합)을 사전 감지하여 운영자에게 명시
안내한다.
본 진단으로는 "설치하기" 버튼 자체를 차단하지 않는다 (PO 결정: 경고만).
검증 시점은 Step 0 1회 한정. 또한 `session.cookie_samesite` 기본값을
Strict → Lax 로 완화하여 차단 케이스 자체를 줄인다 — 진단은 잔여 케이스
대비 안내 역할.
endpoint:
- GET /install/api/session-probe.php?action=set — 세션에 nonce 저장 + 응답
- GET /install/api/session-probe.php?action=verify — 세션의 nonce 와 응답 (한 번 후 제거)
axes:
session_state: [empty, set_called, set_then_verify_called]
cookie_round_trip: [success, blocked]
exclusions:
- { session_state: empty, cookie_round_trip: success, reason: "set 호출 없이 verify 결과 matched 일 수 없음" }
effects:
- set_action_generates_32_hex_nonce
- set_action_stores_nonce_in_installer_session_probe_key
- verify_action_returns_matched_true_when_session_preserved
- verify_action_returns_matched_false_when_session_empty
- verify_action_consumes_nonce_after_first_call
- second_verify_after_consumption_returns_matched_false
- probe_endpoint_requires_installer_guard
- probe_endpoint_emits_application_json_content_type
test_files:
- tests/Unit/Installer/SessionProbeTest.php