Skip to content

fix(security): 서버 전용 Gemini 설정 및 미디어 프록시 보호 - #11

Merged
coom1222 merged 3 commits into
mainfrom
fix/security-f01-f02-f03-f05
Sep 16, 2026
Merged

coom1222 merged 3 commits into
mainfrom
fix/security-f01-f02-f03-f05

Conversation

@coom1222

@coom1222 coom1222 commented Sep 16, 2026

Copy link
Copy Markdown
Member

서버 전용 Gemini 설정과 미디어 프록시 경로를 보완해 F01·F05의 배포 구성을 연결합니다.

  • Backend에 Gemini 환경변수를 전달하고 프론트엔드로 키가 전달되지 않도록 구성
  • 공개 미디어 경로를 보안 헤더가 적용되는 프론트엔드 Nginx로 연결
  • 실제 MinIO 서명·Range·브라우저 미디어 재생·sandbox 검증 스크립트 추가
  • 키 교체, 배포 순서와 롤백 절차 문서화

병합 전 검증 결과

  • 정식 PR이며 아직 병합·운영 배포하지 않았습니다. 자동 병합도 설정하지 않았습니다.
  • 실제 영상 3개를 수정 전·후 각각 업로드 → 실제 ML 추론 → 객체 저장 → 완료 콜백 → MariaDB 저장 → 리포트 조회까지 실행했습니다.
  • 동일 입력·모델·설정에서 AI 원본 JSON, 리포트 및 상세 분석 데이터의 차이는 0입니다. 환경별 ID·서명 URL만 비교에서 제외했습니다.
  • 원본·스켈레톤·미니맵 SHA-256이 모두 같습니다. 썸네일은 의도한 JPEG 재인코딩으로 달라집니다.
  • 브라우저에서 3개 리포트의 양쪽 선수 수치·차트 설명이 같습니다. 각 버전 원본/스켈레톤 재생·탐색 6개 경로, 미니맵, 375px 모바일 메뉴와 가로 넘침을 확인했습니다. JavaScript 예외는 없었습니다.
  • 실제 미디어 Range 조회 24개는 206입니다. 수정 후에는 CSP sandbox·nosniff가 적용됩니다.
  • 실제 HTTP로 다른 계정의 영상·분석·브리핑 404, refresh의 일반 API 사용 401, SVG 썸네일 415 및 저장 차단, 정상 refresh 교환을 확인했습니다.
  • GitHub 병합 예정 트리와 검증한 소스 트리가 세 저장소 모두 일치합니다. PR CI는 성공했고 배포 작업은 건너뛰었습니다.

병합 판단 전에 남은 항목

  • 1080p 기본 설정은 로컬에서 완료하지 못했습니다. TrackNet에서 17.5GiB 메모리가 관측된 뒤 콜백 없이 종료됐습니다. 해당 영상은 양쪽 모두 테스트 전용 --large_video --max_sample_num 120 설정으로 실제 전체 분석했습니다. 나머지 두 영상은 기본 설정입니다. 기본 1080p 운영 동작을 통과한 것으로 보지 않습니다.
  • 운영 과거 결과와 로컬 기준 분석에 일부 타격 분류·프레임 차이가 있습니다. 보안 변경 전후는 같지만 운영 모델·설정의 동등성은 미확인입니다. 운영 AI SSH 인증이 거부되어 접속 정보를 확인 중입니다.
  • 실제 분석 데이터의 Gemini 전송이 자동 승인 검토에서 차단되어 승인 대기입니다. 이번 브라우저 검사는 브리핑 요청을 전송 전에 차단했습니다. 실제 Gemini 브리핑 UI 성공으로 계산하지 않았습니다. 이전 합성 입력의 실제 Gemini HTTP 200 검사와 구분합니다.
  • 기존 문제도 양쪽에서 재현했습니다: 긴 이메일 가입 시 refresh 토큰의 VARCHAR(255) 초과로 500, 데스크톱 레이더 도형의 격자 정렬 이상. 이번 보안 변경의 신규 회귀로 판정하지 않았으며 제품 코드를 추가 변경하지 않았습니다.

함께 검토할 PR 및 적용 순서

서버 전용 키·ffprobe를 준비하고 Backend·보안 프록시·Frontend 순서로 호환되게 적용합니다. 실제 키·토큰·영상·분석 JSON·스크린샷은 이 PR에 올리지 않습니다. 남은 확인 전에는 미병합 상태를 유지합니다.

현재 PR CI

@coom1222
coom1222 merged commit 6dec2b3 into main Sep 16, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant