목록 보기
엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기!
백엔드

엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기!

마켓컬리
마켓컬리
2024년 10월 23일

두줄요약

엑셀 업로드 중 Apache POI가 Zip Bomb으로 파일을 차단한 원인과 로그 분석 과정을 정리했습니다. 최소 압축 비율 조정과 파일 크기·중첩 레벨 점검으로 대응했습니다.

문제 상황

  • 엑셀 업로드 과정에서 Apache POI가 Zip Bomb으로 파일을 차단하며 XSSFWorkbook 생성 시 오류 발생
  • 로그에 압축 해제 후 크기, 압축 크기, 최소 압축 비율, 문제 엔트리 정보가 함께 노출

원인 분석

  • .xlsx 내부의 XML 압축 구조 특성상 압축률이 매우 높아 Zip Bomb으로 오인 가능
  • 문제 파일은 styles.xml에 반복적인 스타일 정의가 많아 압축률이 임계값을 약간 초과

해결 방법

  • ZipSecureFile.setMinInflateRatio()로 최소 압축 해제 비율 조정
  • 압축 파일 총 해제 크기와 중첩 레벨을 사전 점검해 차단

주의할 점

  • 비율 완화는 보안 검사를 느슨하게 만드는 만큼 악성 파일 대응 필요
  • 서비스 특성에 따라 허용 기준과 보안 강도를 함께 검토 필요

적용해볼 점

  • 업로드 파일 처리 전에 로그와 압축 메타데이터를 먼저 확인
  • 엑셀 내부 XML 구조와 반복 데이터가 압축률에 미치는 영향 점검

다음 읽기

#Java 주제를 이어서 읽기

엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기! 🥊

엑셀 내부 styles.xml의 반복 스타일이 높은 압축률을 만들어 Apache POI의 Zip Bomb 탐지를 유발했습니다.\n압축 해제 비율을 조정해 우선 해결하고, 크기·중첩 레벨 제한을 보안 대안으로 제시했습니다.

마켓컬리
마켓컬리
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...