티스토리 뷰
확장자가 분명한 곳, 예를 들어 이미지 파일이나 엑셀 등은 통제하기 어렵지 않습니다.
그러나 게시판이나 이메일 첨부파일에는 허용하는 파일보다 허용하지 않는 파일을 통제해야 하는 경우도 있습니다.
실행 파일 확장자
확장자 | 내용 |
bat | 배치파일 |
bin | Binary Executable |
cmd | 윈도우 명령 스크립트 |
com | 명령 파일 |
cpl | 제어판 확장 |
dll | 데이터 파일 |
exe | 실행파일 |
gadget | Windows Gadget |
inf1 | Setup Information File |
ins | Internet Communication Settings |
inx | InstallShield Compiled Script |
isu | InstallShield Uninstaller Script |
job | Windows Task Scheduler Job File |
jse | JScript 인코딩 파일 |
lnk | 링크 바로 가기 |
msc | 마이크로소프트 공통 콘솔 |
msi | 윈도우즈 설치 파일 |
msp | 윈도우즈 패치 파일 |
mst | Windows Installer Setup Transform File |
paf | 휴대용 APP 설치 파일 |
pif | 프로그램 정보 파일 |
ps1 | 윈도우즈 Power shell |
reg | 레지스트리 데이터 파일 |
rgs | 레지스트리 스크립트 파일 |
scr | 스크린 세이버 실행 파일 |
sct | 윈도우즈 scriptlet |
sh | shell script |
shb | 윈도우즈 문서 바로 가기 |
shs | shell script 개체 |
u3p | U3 스마트 어플리케이션 |
vb | VBScript |
vbe | VB 인코딩 스크립트 |
vbs | VBScript |
vbscript | VBScript |
ws | windows script |
wsf | windows script |
wsh | Windows Script Preference |
실행파일이 자주 변경이 되거나 한다면 공통코드로 뽑아서 관리하면 될거 같습니다. 아래는 간단하게 하드코딩된 값으로 체크하는 함수입니다.
화면 처리 : javascript
// 결과가 true면 정상, false이면 업로드 불가.
function validateFileExt(filename) {
var extReg = /(bat|bin|cmd|com|cpl|dll|exe|gadget|inf1|ins|isu|jse|lnk|msc|msi|msp|mst|paf|pif|ps1|reg|rgs|scr|sct|sh|shb|shs|u3p|vb|vbe|vbs|vbscript|ws|wsf|wsh)$/i;
var ext = filename.substr( (filename.lastIndexOf('.') +1) );
return !extReg.test(ext);
}
서버 체크.
private static final String RUNABLE_FILE_EXT = "^(.*\\.)(?i)(bat|bin|cmd|com|cpl|dll|exe|gadget|inf1|ins|isu|jse|lnk|msc|msi|msp|mst|paf|pif|ps1|reg|rgs|scr|sct|sh|shb|shs|u3p|vb|vbe|vbs|vbscript|ws|wsf|wsh)$";
// 확장자가 실행 파일이면 true를 반환한다.
public static boolean checkRunableExtension(String fileName) {
if(fileName == null) return false;
return fileName.matches(RUNABLE_FILE_EXT);
}
참고
'잡동사니 > 개인정보보안' 카테고리의 다른 글
[개인정보보안]구글 OTP 적용하기 (3) | 2021.03.04 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그리드
- mybatis
- 타임리프
- 예제
- 스프링부트
- AG-GRID
- springboot
- cache
- listToMap
- oracle
- 엑셀
- RESTful
- restful서비스
- java
- mapToList
- ag grid
- Spring Boot
- example
- REST
- SHEETJS
- lombok
- Javascript
- UI
- 설정
- sample
- spring
- 샘플
- 메시지
- thymeleaf
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함