본문으로 바로가기

Security & Technology Intelligence

Range 요청을 지원하는 안전한 로컬 문서 제공

경로 탈출, 심볼릭 링크, 파일 형식과 캐시를 차단하면서 승인한 학습 문서에만 byte range를 제공하는 경계입니다.

작성 약 1분 읽기
#security#path-traversal#http-range#file-serving

비공개 대시보드에서 로컬 문서를 제공하는 순간 파일시스템 보안 경계가 생긴다. 쿼리 문자열을 기준 디렉터리에 단순히 붙이면 경로 순회, 심볼릭 링크 탈출, 의도하지 않은 파일 공개가 가능하다.

Diagram loads as it approaches the viewport.

서버는 기준 경로와 요청 파일의 실제 경로를 해석하고 구분자 단위로 포함 관계를 확인한다. 절대 경로, 인코딩된 .., null byte, 잘못된 인코딩은 파일 접근 전에 거부한다. 승인한 루트와 PDF·DOCX·HWP만 허용하며 개인 메모와 다른 확장자는 제외한다.

PDF 뷰어의 유효한 Range에는 206, Content-Range, 정확한 길이를 반환하고 잘못된 범위에는 416을 준다. 응답은 private, no-store로 공유 캐시 저장을 막는다.

검증은 비로그인 차단, PDF byte range, 비공개 캐시, 비정상 경로·메서드 거부, 개인 메모 제외를 확인했다. 인증과 경로 포함 검사는 서로 독립된 방어선이므로 둘 다 시험해야 한다.

관련 글