목적
내가 허용한 파일확장자 외에는 업로드할 수 없으며,
.jpg.exe라는 파일이름으로 가장할 수도 있다 이것을 막아야한다
//파일업로드 취약점 수정
for(int i=0 ; i<fileFileName.toArray().length ; i++) {
String fileName = getFileFileName().get(i);
int lastIndex = fileName.lastIndexOf(".");
String etc = fileName.substring(lastIndex+1);
String onlyFileName = fileName.substring(0, lastIndex);
System.out.println("파일 이름 길이 .전까지:"+lastIndex);
System.out.println("파일 확장자:"+etc);
System.out.println("파일 이름:"+onlyFileName);
//pdf. gif, jpg, png만 허용한다
//그 중에서도 . 또는 ; 하나가 더 있거나 라면 에러를 보낸다 .jpg.exe라는 파일이름으로
들어올 수도 있기 때문
if(fileName.toLowerCase().endsWith(".pdf")||fileName.toLowerCase().endsWith(".gif")||fileName.toLowerCase().endsWith(".png")||
fileName.toLowerCase().endsWith(".jpg")){
if(onlyFileName.contains(".") || onlyFileName.contains(";") || etc.length() == 0 || onlyFileName.contains("..")){
System.out.println("첨부파일 등록 시, 허용되지않는 문자가 포함돼있습니다.");
return ERROR;
}
}else{
System.out.println("내가 지정한 확장자가 아님");
return ERROR;
}
}
'언어 > Java' 카테고리의 다른 글
[Java] NHN_toast를 이용하여 카카오 알림톡 발송 (0) | 2025.02.23 |
---|---|
[Java] 다중검색필터 (checkbox)로 보낸 array값들 checkbox로 checked하기 (0) | 2025.02.23 |
[Java] xss 방지 로직 짜기 (0) | 2025.02.16 |
[Java] 로그인 기능 만들기 (0) | 2025.02.16 |
[Java] session 저장하기 , 가져오기, 지우기 (0) | 2025.02.16 |