반응형
파일 업로드 기능을 구현할 때 주의사항
1. WhiteList를 체크한다.
- 화면단에서 필요한 파일 확장자명을 받는다
- 또는 서버단에서 결정을 하고 화면단에 통보해도 된다? (약간... 평화주의적은 아닌듯)
- 확장자는 (.xls, .ppt*, .doc, .png, .jpg) 이런식으로 whiteList를 정한다. 그 외에 확장자들은 Error 메세지를 보낼 수 있도록 한다.
2. 어떻게 구현했는가?
- 처음 구현할 때, 업로드 기능을 만들어두고, 나중에 whiteList를 추가해줬다.
- 방법은 맘대로~
1. WhiteList 체크
//MultipartFile을 file 변수명으로 받는다.
if (file == null) {
//Exception 처리
}
long fileSize = file.getSize();
if (fileSize > MAX_FILE_SIZE) throw //Exception 처리;
String fileName = file.getOriginalFilename().toLowerCase();
if (fileName != null) {
if (fileName.endsWith(".png") || fileName.endsWith(".txt") ||
fileName.endsWith(".csv") || fileName.endsWith(".doc") ||
fileName.endsWith(".ppt*") || fileName.endsWith(".hwp")||
fileName.endsWith(".xls*") || fileName.endsWith(".jpg")) {
//파일 업로드 기능 구현
} else throw //Exception 처리;
이와 같이 구현을 하였다.
참고 자료: https://myeonguni.tistory.com/1646
[시큐어코딩-자바] 위험한 형식 파일 업로드 (입력 데이터 검증 및 표현)
[시큐어코딩-자바] 위험한 형식 파일 업로드 (입력 데이터 검증 및 표현) 입력 데이터 검증 및 표현이란? 프로그램 입력 값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정, 일��
myeonguni.tistory.com
**류명운 형님꺼 참고했다. 감사합니다^^
반응형
'WEB ( Back, Front) > Java' 카테고리의 다른 글
JAVA 프로그래밍: 시작부터 실전까지의 스토리 chapter 1 (0) | 2023.05.17 |
---|---|
JsonNode to Object, Object to JsonNode 자유자제로 사용하기 (0) | 2022.02.18 |
Map vs List 차이 (0) | 2020.09.15 |
Java #1 (0) | 2019.12.27 |
댓글