Skip to content

파일 삭제를 올린 본인만 허용하고 업로드 MIME 타입을 확장자와 맞춰 검증 #225

Open

Description

@xeoxxn

어떤 기능인가요?

추가하려는 기능에 대해 간결하게 설명해주세요

DELETE /v1/files/{fileId}가 파일을 올린 사람을 확인하지 않아서, 로그인한 누구나 다른 사람의 파일을 ID로 지울 수 있다. 또 업로드 URL 발급 때 클라이언트가 보낸 contentType을 확인하지 않고 그대로 서명한다. 그래서 a.png라는 이름에 text/html을 붙여 올리면 저장소 주소에서 HTML 페이지로 열린다. 두 가지를 막는다.

📝 작업 상세 내용

  • 파일 삭제는 올린 본인만 할 수 있게 한다. 관리자도 예외 없이, 남의 파일이면 403
  • 업로드 URL 발급 때 contentType이 확장자별 허용 MIME과 맞지 않으면 거절한다. 서버 값으로 덮어쓰지 않는다

📁 참고 자료 (선택)

  • 같은 FileUploadPolicy를 고치는 [Fix/#215] 물품 아이콘 업로드를 SVG 파일만 허용 #216 위에 쌓는다.
  • 확장자별 허용 MIME
    • jpg·jpeg: image/jpeg, image/jpg
    • png: image/png / webp: image/webp / svg: image/svg+xml
    • pdf: application/pdf / doc: application/msword
    • docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document
    • hwp: application/x-hwp, application/haansofthwp (IANA 등록값 없음)
    • zip: application/zip, application/x-zip-compressed

Activity

  1. self-assigned this
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions