CONCLUSION

SVG 원본을 바꾸지 않고 이름만 not-a-jpeg.jpg로 복사하자 file은 여전히 SVG, MIME은 image/svg+xml로 판정했습니다. 확장자 변경은 인코딩 변환이 아닙니다.

확인 방법

  1. ToolNuri의 SVG 소셜 이미지를 원본 바이트 그대로 복사했습니다.
  2. 복사본 파일명만 not-a-jpeg.jpg로 지정했습니다.
  3. macOS file로 설명형 판정과 MIME 판정을 각각 확인했습니다.

파일명은 JPG, 내용은 SVG였다

검사 결과는 ‘SVG Scalable Vector Graphics image’였고 MIME 판정은 image/svg+xml이었습니다. 이름 끝의 .jpg는 바이트를 JPEG 구조로 다시 쓰지 않았습니다.

확장자 변경 뒤 파일 식별 결과
확인 항목결과
파일명not-a-jpeg.jpg
file 설명SVG Scalable Vector Graphics image
MIME 판정image/svg+xml
실제 변환없음

왜 업로드 검사에서 둘 다 봐야 할까

서버가 확장자만 믿고 브라우저는 내용 바이트를 다른 형식으로 해석하면 보안 문제가 생길 수 있습니다. WHATWG MIME Sniffing 표준도 PNG, JPEG, GIF, WebP와 ZIP 같은 형식을 시작 바이트 패턴으로 구분하는 절차를 정의합니다.

반대로 내용 검사만으로도 파일이 안전하다고 단정할 수 없습니다. 허용할 형식의 구조를 실제 파서로 읽고, 크기와 처리 한도를 제한해야 합니다.

변환과 이름 변경을 구분한다

이미지를 JPG로 바꾸려면 SVG를 렌더링해 JPEG 인코더로 새 바이트를 만들어야 합니다. 이 과정에서는 투명도, 글꼴, 색상 프로필과 픽셀 크기가 바뀔 수 있으므로 원본을 별도로 남깁니다.

확인한 1차 자료

작성·검수

파일 처리 실험을 직접 재현하고, 측정값과 해석의 경계를 검수합니다. 전문 감정이나 법률 판단을 대신하지 않습니다.