본문 바로가기
WEB ( Back, Front)/Java

파일 업로드 주의 사항

by 프리랜서가 들려주는 IT세계 2020. 8. 6.
반응형

파일 업로드 기능을 구현할 때 주의사항

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

**류명운 형님꺼 참고했다. 감사합니다^^


 

 

반응형

댓글