QT 세션 IDOR 접근 제어 + select 참여자 검증
ID: 134e7895-b8d8-4eb7-a2b8-3824c08e8bc8
보통
완료
## 목표
비참여자의 비공개 세션 접근 차단 + select 액션 참여자 확인
## 발견 사항 (보안 리뷰)
1. [MEDIUM] set_session이 QtSession.find(params[:id])로 무조건 조회 → 비참여자도 show/members/rankings 접근 가능
2. [MEDIUM] select 액션에서 참여자 확인 없이 current_session_id 설정 가능
## 수정 방법
1. before_action :verify_participant 추가 (show, shared_meditations, members, rankings)
- is_public이면 허용, 아니면 qt_participants.exists?(user: current_user) 확인
2. select 액션에 참여자 확인:
```ruby
unless @session.qt_participants.exists?(user: current_user)
redirect_to qt_sessions_path, alert: "참여 중인 플랜만 선택할 수 있습니다."
return
end
```
## 완료 기준
- 비참여자 비공개 세션 접근 차단
- select 참여자 검증
- 테스트 추가
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
담당자:
미배정
생성일:
2026년 03월 03일 05:22
활동 로그
-
팀팀리드 상태 변경: 할 일 → 완료
2026년 03월 03일 05:55:02