[분석] /results 로그인 풀림: 세션 쿠키 Path/도메인 재작성 여부 점검 및 조치 #7

Closed
opened 2026-02-05 12:53:58 +09:00 by lectom · 3 comments

증상

  • /results에서 로그인 상태가 유지되지 않음
  • 새로고침 시 IDP 호출이 전혀 발생하지 않음 (세션 자체가 없음)

.htaccess 확인 결과

  • 쿠키/세션과 직접 관련된 규칙 없음
  • 라우팅/리다이렉트/정적 파일 처리 규칙만 존재

추정 원인

  1. 기존 PHPSESSID가 Path=/kngil로 남아 있어 루트(/results)로 쿠키가 전달되지 않음
  2. 리버스 프록시/웹서버에서 Set-Cookie를 강제로 Path=/kngil로 rewrite할 가능성

조치(코드 반영)

  • kngil_start_session()에서 레거시 /kngil 쿠키 삭제 후 Path=/로 재설정
  • 로그인 성공 시 session_regenerate_id(true) 적용
  • session_start() 사용 파일을 kngil_start_session()로 통일

확인 필요(운영 환경)

  • /results 요청 시 Set-Cookie 헤더 확인
    • Path=/로 내려오는지
    • 프록시가 Path=/kngil로 강제 변경하는지
  • 브라우저 쿠키에서 PHPSESSID Path가 /인지 확인
  • 필요 시 프록시 설정에서 proxy_cookie_path/proxy_cookie_domain 정책 점검

검증 체크리스트

  • 로그인 후 /results 접속 시 로그인 상태 유지
  • 새로고침 후에도 세션 유지 및 IDP 호출 불필요
  • 쿠키 Path가 /로 유지되는지 확인
## 증상 - `/results`에서 로그인 상태가 유지되지 않음 - 새로고침 시 IDP 호출이 전혀 발생하지 않음 (세션 자체가 없음) ## .htaccess 확인 결과 - 쿠키/세션과 직접 관련된 규칙 없음 - 라우팅/리다이렉트/정적 파일 처리 규칙만 존재 ## 추정 원인 1) 기존 PHPSESSID가 `Path=/kngil`로 남아 있어 루트(`/results`)로 쿠키가 전달되지 않음 2) 리버스 프록시/웹서버에서 `Set-Cookie`를 강제로 `Path=/kngil`로 rewrite할 가능성 ## 조치(코드 반영) - `kngil_start_session()`에서 레거시 `/kngil` 쿠키 삭제 후 `Path=/`로 재설정 - 로그인 성공 시 `session_regenerate_id(true)` 적용 - `session_start()` 사용 파일을 `kngil_start_session()`로 통일 ## 확인 필요(운영 환경) - `/results` 요청 시 `Set-Cookie` 헤더 확인 - `Path=/`로 내려오는지 - 프록시가 `Path=/kngil`로 강제 변경하는지 - 브라우저 쿠키에서 `PHPSESSID` Path가 `/`인지 확인 - 필요 시 프록시 설정에서 `proxy_cookie_path`/`proxy_cookie_domain` 정책 점검 ## 검증 체크리스트 - 로그인 후 `/results` 접속 시 로그인 상태 유지 - 새로고침 후에도 세션 유지 및 IDP 호출 불필요 - 쿠키 Path가 `/`로 유지되는지 확인
Author

/results 통합 로그인 불가 이슈 보완 수정 반영했습니다.

  • OIDC 로그인 시작점에서 세션 쿠키 path를 /로 고정하도록 kngil/auth/oidc-login.phpkngil_start_session() 호출 추가
  • 헤더에서 OIDC 버튼 바인딩을 자체적으로 수행하도록 _header.php에 가드/바인딩 스크립트 추가(공통 JS 오류가 있어도 버튼 동작)
  • kngil/js/common.js의 OIDC 바인딩 로직에 중복 바인딩 방지(dataset 플래그), 기본 이벤트 차단, message 리스너 중복 방지 적용

예상 효과:

  • /results에서도 통합 로그인 버튼 클릭 시 /kngil/auth/oidc-login.php 호출이 보장됨
  • 로그인 후 세션 쿠키 path 이슈로 /results에서 로그인 상태 미반영되는 문제 완화

확인 부탁드립니다. 그래도 재현되면 /results에서 콘솔 에러 유무와 /kngil/js/common.js 로드 여부(HTTP 상태) 알려주시면 추가 추적하겠습니다.

/results 통합 로그인 불가 이슈 보완 수정 반영했습니다. - OIDC 로그인 시작점에서 세션 쿠키 path를 `/`로 고정하도록 `kngil/auth/oidc-login.php`에 `kngil_start_session()` 호출 추가 - 헤더에서 OIDC 버튼 바인딩을 자체적으로 수행하도록 `_header.php`에 가드/바인딩 스크립트 추가(공통 JS 오류가 있어도 버튼 동작) - `kngil/js/common.js`의 OIDC 바인딩 로직에 중복 바인딩 방지(dataset 플래그), 기본 이벤트 차단, message 리스너 중복 방지 적용 예상 효과: - /results에서도 통합 로그인 버튼 클릭 시 `/kngil/auth/oidc-login.php` 호출이 보장됨 - 로그인 후 세션 쿠키 path 이슈로 /results에서 로그인 상태 미반영되는 문제 완화 확인 부탁드립니다. 그래도 재현되면 /results에서 콘솔 에러 유무와 `/kngil/js/common.js` 로드 여부(HTTP 상태) 알려주시면 추가 추적하겠습니다.
Author

추가 수정 반영했습니다. 홈만 로그인 반영되던 원인은 서브 페이지들이 세션 시작을 HTML 출력 이후에 하던 구조로 추정되어, 모든 서브 페이지에서 출력 전에 세션을 시작하도록 보강했습니다.

  • kngil/skin/*.php (언더스코어 제외) 최상단에 kngil_start_session() 호출 추가
  • 결과적으로 /value, /provided, /primary, /results 등 서브 페이지도 헤더 렌더링 전에 세션이 확실히 로드됨

확인 부탁드립니다. 여전히 동일 증상이면, 응답 헤더의 Set-Cookie 유무와 실제 쿠키 Path/Domain 값을 알려주시면 이어서 추적하겠습니다.

추가 수정 반영했습니다. 홈만 로그인 반영되던 원인은 서브 페이지들이 세션 시작을 HTML 출력 이후에 하던 구조로 추정되어, 모든 서브 페이지에서 출력 전에 세션을 시작하도록 보강했습니다. - `kngil/skin/*.php` (언더스코어 제외) 최상단에 `kngil_start_session()` 호출 추가 - 결과적으로 `/value`, `/provided`, `/primary`, `/results` 등 서브 페이지도 헤더 렌더링 전에 세션이 확실히 로드됨 확인 부탁드립니다. 여전히 동일 증상이면, 응답 헤더의 `Set-Cookie` 유무와 실제 쿠키 Path/Domain 값을 알려주시면 이어서 추적하겠습니다.
Author

추가 조치 업데이트

  • 서브 페이지 로그인 미반영 문제: kngil/skin/*.php(언더스코어 제외) 최상단에서 kngil_start_session() 호출하도록 보강 완료
  • *copy.php 잔존 파일 제거: kngil/bbs/adm_comp copy.php, kngil/bbs/join copy.php, kngil/bbs/login_sms copy.php

위 조치로 FAQ/analysis/value 등에서도 로그인 상태가 정상 반영되어야 합니다. 확인 부탁드립니다.

추가 조치 업데이트 - 서브 페이지 로그인 미반영 문제: `kngil/skin/*.php`(언더스코어 제외) 최상단에서 `kngil_start_session()` 호출하도록 보강 완료 - `*copy.php` 잔존 파일 제거: `kngil/bbs/adm_comp copy.php`, `kngil/bbs/join copy.php`, `kngil/bbs/login_sms copy.php` 위 조치로 FAQ/analysis/value 등에서도 로그인 상태가 정상 반영되어야 합니다. 확인 부탁드립니다.
cyhan closed this issue 2026-02-05 13:19:30 +09:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: b24014/kngil_home#7