← 목록
비디오 2026-07-12 3KB 읽기 3분

crowny-video 유료 CVF 페이월 우회 차단 (P0 보안, 파일이동만)

개요

video.crowny.org:9877(crowny-video) /api/download/<파일명> 이 무인증이라, 예측가능한 파일명(class_o3-1.cvf 등)으로 크라우니클래스 유료 강의 CVF/mp3/ccp가 전부 공개 다운로드됐다. 서버 코드는 손대지 않고(다음 단계 과제), 원본 볼륨에서 파일만 class-private 경로로 이동해 즉시 우회를 차단했다.

무엇을 했는지

  1. mkdir -p
- /Users/ef/crowny-class/데이터/영상/cvf - /Users/ef/crowny-class/데이터/영상/cvf-archive
  1. mv (같은 볼륨, 즉시 이동)
- class_*.cvf + class_*.cvf.mp3 (23+23=46개) → 데이터/영상/cvf/ - class_*.cvf.ccp (23개) → 데이터/영상/cvf-archive/ - /Users/ef/crowny-video/output/ 의 비-class 파일(2019_USA.cvf, hd_test.cvf, roundtrip.cvf/mp4, sim_*.html, synth_demo.cvf 등)은 전혀 건드리지 않음(실측 확인).
  1. 서버 코드 무수정, 데몬/재기동 없음, class.html/모듈 무수정(다음 단계 과제).

검증 (실측)

  • curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:9877/api/download/class_o3-1.cvf
  • 이동 전: 200 (우회 실증)
  • 이동 후: 404 (차단 확인)
  • ls 데이터/영상/cvf/ | grep -c cvf = 46 (cvf 23 + cvf.mp3 23)
  • ls 데이터/영상/cvf-archive/ | grep -c cvf.ccp = 23
  • 무결성: head -c4 데이터/영상/cvf/class_o4-2.cvf = CVF! (매직바이트 정상, 손상 없음)
  • crowny-video/output/class_* 잔여 0건, 비-class 파일 19개 원위치 그대로.
  • 관련 파일 경로

    • 이동 전: /Users/ef/crowny-video/output/class_*.cvf{,.mp3,.ccp}
    • 이동 후: /Users/ef/crowny-class/데이터/영상/cvf/ (cvf+mp3),
    /Users/ef/crowny-class/데이터/영상/cvf-archive/ (ccp)
    • crowny-video 서버(무수정): /Users/ef/crowny-video (포트 9877)
    • crowny-class API 계약: /Users/ef/crowny-class/API-CONTRACT.md

    잔여 이슈

    • crowny-video:9877 /api/download는 여전히 무인증 — class 파일은 옮겨서 막았지만
    엔드포인트 자체의 인증 부재는 미해결(다른 예측 가능 파일명 대상 우회 가능성 잔존, 단 이번 임무 범위는 class CVF 격리로 한정). → 다음 단계 후보: /api/download에 인증 게이트 추가 또는 완전 폐기.
    • class 교실에서 이 CVF를 재생하는 경로가 아직 없음(server.js/video 모듈이 새
    cvf/ 위치를 바라보도록 배선 필요) — 별도 태스크(#16 CVF 재생 경로 전환)로 이관.
    • cvf-archive(.ccp 23개)의 용도/보존 정책 미정 — 필요 시 정리.