처리 방식과 검증 방법
MetaRinse가 파일 형식을 확인하고 메타데이터를 읽은 뒤, 브라우저에서 이미지를 다시 인코딩하고 결과 파일을 검사하는 과정을 설명합니다.
지원 범위
마지막 자동 테스트: 2026-08-03. JPEG와 PNG를 지원합니다. WebP는 브라우저가 디코딩과 인코딩을 모두 지원하는지 확인한 뒤 처리합니다. HEIC와 HEIF는 사이트에 포함된 브라우저용 디코더로 열어 JPEG 결과로 저장합니다. AVIF, GIF, TIFF, BMP, SVG, RAW, PDF와 동영상은 지원하지 않습니다.
위 결과는 Playwright에 포함된 브라우저 엔진에서 확인했습니다. 실제 기기에 설치된 정식 브라우저와 보조 기술에서는 동작이 다를 수 있습니다.
| 검사일 | 자동 검사 환경 | 확인한 내용 |
|---|---|---|
| 2026-07-26 | Chromium 149.0.7827.55 · Playwright 1.61.1 · Windows 11 10.0.26200 | 시험용 이미지 선택·검사·정리·다운로드, 결과 재검사, 접근성, 이미지가 외부로 전송되지 않는지 확인 |
| 2026-07-26 | Firefox 151.0 · Playwright 1.61.1 · Windows 11 10.0.26200 | 시험용 이미지 선택·검사·정리·다운로드, 결과 재검사, 접근성, 이미지가 외부로 전송되지 않는지 확인 |
| 2026-07-26 | WebKit 26.5 · Playwright 1.61.1 · Windows 11 10.0.26200 | 시험용 이미지 선택·검사·정리·다운로드, 결과 재검사, 접근성, 이미지가 외부로 전송되지 않는지 확인 |
| 2026-07-26 | Mobile Chromium 149.0.7827.55 · Pixel 7 emulation · Playwright 1.61.1 · Windows 11 10.0.26200 | 시험용 이미지 선택·검사·정리·다운로드, 결과 재검사, 접근성, 이미지가 외부로 전송되지 않는지 확인 |
파일 확인과 메타데이터 검사
- 파일 확장자와 브라우저가 보고한 MIME 형식, JPEG·PNG·WebP·HEIC·HEIF 파일의 시그니처를 함께 확인합니다. 같은 계열의 컨테이너를 쓰는 AVIF는 별도로 구분해 거부합니다.
- 파일 한 개당 25MB, 한 번에 최대 20개, 총 150MB, 파일 한 개당 디코딩 후 6천만 픽셀 제한을 적용합니다.
- exifr 7.1.3과 브라우저 안에서 작동하는 PNG·WebP·HEIF 파일 구조 분석기를 함께 사용합니다. HEIF 컨테이너 안의 EXIF 위치를 확인하고, WebP의 EXIF·XMP·ICC와 PNG의 zTXt 및 XMP 외의 iTXt 텍스트도 검사합니다.
- 추출한 값은 모두 일반 텍스트로 표시하며, 일련번호로 보이는 값은 기본적으로 일부를 가립니다.
이미지 처리 과정
메타데이터 클리너는 지원되는 브라우저에서 Web Worker, createImageBitmap, OffscreenCanvas를 사용합니다. OffscreenCanvas를 사용할 수 없으면 HTML canvas를 통해 파일을 하나씩 처리합니다. 화면에 표시되는 방향대로 원본을 디코딩하고 새 캔버스에 그린 뒤 다시 인코딩합니다. JPEG와 WebP는 손실 압축 형식이며, PNG도 새로 생성되므로 색상 프로필 처리 방식이 달라질 수 있습니다.
HEIC와 HEIF는 해당 파일을 선택한 경우에만 사이트에 포함된 @discourse/heic WebAssembly 모듈로 디코딩합니다. 클리너·자르기·가리기 결과는 JPEG이며, 보조 이미지와 심도 정보, Live Photo 동영상은 복사하지 않습니다. HEIC 사진을 여러 장 처리하면 기기 메모리를 많이 사용할 수 있습니다.
목표 용량 압축 도구는 파일을 한 번 읽은 뒤 한 장씩 순서대로 처리합니다. JPEG와 WebP는 정해진 횟수 안에서 여러 품질 설정을 시험합니다. 가장 낮게 허용한 품질로도 목표보다 클 때는, 사용자가 허용한 경우에만 해상도를 줄입니다. PNG에는 품질 값을 적용하지 않으며 자동으로 다른 형식으로 바꾸지 않습니다. 품질 비교와 해상도 축소는 모두 정해진 횟수 안에서 끝납니다.
결과 파일 확인
새로 만든 Blob을 처음과 같은 메타데이터 분석기로 다시 검사합니다. 개인정보나 설명이 담긴 것으로 분류된 메타데이터가 더 이상 읽히지 않을 때만 결과 파일을 다운로드할 수 있습니다. 가로·세로 크기 같은 기술 정보는 남을 수 있습니다. 이 검사는 파일에 포렌식 흔적이 전혀 없다거나 익명임을 증명하지 않습니다.
테스트용 파일과 자동 검사
- 프로젝트에서 직접 만든 메타데이터가 포함된 JPEG·PNG·WebP·HEIC 파일, EXIF UserComment, PNG zTXt/iTXt, 메타데이터가 없는 이미지, 방향 정보가 있는 이미지와 손상된 파일을 사용합니다.
- 단위 테스트에서는 파일 서명, 용량·개수 제한, 파일명, 메타데이터 분류와 가림 처리, 경로, 품질 설정, 목표 용량 계산, 품질 비교, 해상도 축소, 상태 전환과 결과 검사를 확인합니다.
- Playwright 테스트에서는 업로드, 메타데이터 확인과 정리, 목표 용량 압축, 실제 파일 크기 확인, 다운로드와 ZIP, 취소와 오류를 확인합니다. 다국어 경로, 모바일 화면, 접근성, 이미지 관련 정보의 무전송 여부도 함께 검사합니다.
- 시험 파일을 만드는 방식과 공개 결과를 확인하는 절차는 아래에 설명합니다. MetaRinse는 개발 과정과 배포 전에 같은 검사를 다시 실행합니다.
공개한 시험 결과를 다시 확인하는 방법
- 시험 파일 생성기는 MetaRinse가 직접 만든 픽셀 데이터로 JPEG, PNG, WebP, HEIC를 만들고 GPS, 기기, 날짜, 작성자, 댓글, EXIF, XMP, zTXt, iTXt 검사용 값을 넣습니다.
- 단위 테스트는 원본 바이트를 읽어 정보 종류와 일련번호 가림 처리, JPEG 댓글, PNG 압축·국제 텍스트, WebP EXIF·XMP 항목이 예상대로 발견되는지 확인합니다.
- Playwright는 실제 파일 선택 창을 통해 시험 파일을 넣고 방문자와 같은 브라우저 처리 과정을 실행한 뒤, 다운로드한 결과 바이트를 다시 분석합니다.
- JPEG는 32 × 24 크기와 평균 RGB 차이의 상한을, PNG는 24 × 18 크기와 반투명·불투명 알파 표본을, WebP는 4 × 3 크기와 알파 표본을 확인합니다.
- 별도의 네트워크 검사는 파일 선택 이후의 요청을 감시하며 파일명, 시험용 표식, 이미지 시그니처, base64 데이터 또는 이미지가 담긴 요청이 발견되면 실패합니다.
공개 시험 기록의 마지막 검토일은 2026-07-26입니다.
브라우저 인코더마다 정상적인 결과 파일의 바이트 수가 달라질 수 있으므로 정확한 결과 용량은 통과 조건으로 사용하지 않습니다.
알려진 한계
- exifr가 제조사별 고유 메타데이터를 인식하지 못할 수 있습니다.
- 캔버스로 다시 인코딩하면 압축 방식, 파일 크기, 색상 프로필과 일부 미세한 픽셀 값이 달라질 수 있습니다.
- 사진에 보이는 내용, 파일명, 클라우드 사본, 파일 시스템 날짜와 플랫폼 계정 기록은 메타데이터 검사 범위에 포함되지 않습니다.
- 메모리가 적은 기기에서는 한 번에 처리하는 이미지 수를 줄여야 할 수 있습니다.
- WebP 인코딩 지원 여부는 브라우저에 따라 다릅니다.
- PNG 압축 텍스트는 압축을 푼 뒤 최대 2MB까지만 읽습니다. 손상됐거나 더 큰 텍스트 청크는 메타데이터가 없는 것으로 간주하지 않고 파일을 거부합니다.
보안 제보
재현할 수 있는 보안 문제나 개인정보 관련 문제는 metarinse@gmail.com로 알려 주세요. 제보에는 개인 사진, 메타데이터, 로그인 정보나 그 밖의 민감한 개인정보를 포함하지 마세요.