티스토리 뷰
들어가며
- Apache poi를 사용하여 Exel write 기능을 구현하는데 아래와 같은 에러가 발생하면서 실패하였다.
Zip bomb detected! The file would exceed the max.
ratio of compressed file size to the size of the expanded data.
This may indicate that the file is used to inflate memory usage and thus could pose a security risk.
You can adjust this limit via ZipSecureFile.setMinInflateRatio()
if you need to work with files which exceed this limit
원인
- 검색해보니 "Zip bomb" 이라는 용어는 일종의 공격 기법으로 작은 Zip 파일안에 압축되지 않는 매우 큰 파일을 집어넣어 디스크 공간에 영향을 줄 수 있다고 한다.
- .xlsx 파일은 XML 파일이 포함된 압축 파일이기 때문에 POI에서 "Zip Bomb" 관련한 취약점이 발생할 가능성이 있다고 한다.
- 결론적으로 Apache Poi는 이러한 취약점을 방지하기 위해서 기본적으로 문제의 소지가 되는 상황에 대해서 reject를 시키고 있다고 한다.
- 문제가 될 수 있는 상황은 주로 많은 행 혹은 많은 열을 가지는 경우라고 함
- 나의 경우는 5000개 정도의 열을 가지고 있어서 문제의 소지가 있다고 판단한 것 같았다.
해결방법
- 이러한 safeguard를 풀기 위해선 아래와 같이 설정을 work book을 생성하기 전에 해주면 된다.
ZipSecureFile.setMinInflateRatio(0);
관련글
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] URL로 부터 File Download 하는 방법 (0) | 2020.08.05 |
---|---|
[Java] 스트림 슬라이싱 (0) | 2020.08.04 |
[Java] Apache poi 엑셀 Cell 스타일링 방법 (배경, 테두리, 폰트 등) (0) | 2020.07.29 |
[Java] 함수형 인터페이스 예외 처리 방법 (0) | 2020.07.29 |
[Java] 함수형 인터페이스 소개 및 사용 (0) | 2020.07.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 일본 배낭여행
- effective java
- git
- 인텔리제이
- java
- windows
- JavaFX Window Close
- JavaFX
- 자전거
- 텐트
- JavaFX 테이블뷰
- TableView
- 일본 자전거 여행
- Java UI
- JavaFX Table View
- 배낭 여행
- JavaFX 종료
- 일본 여행
- 방통대 과제물
- intelij
- 이펙티브자바
- 배낭여행
- 이펙티브 자바
- effectivejava
- springboot
- 스프링부트
- 자전거 여행
- 자바
- 이펙티브
- 일본여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함