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