티스토리 뷰
1. 파일 업로드 / 다운로드 취약점
- 업로드 기능에서 파일 사이즈의 제한을 주지 않을 경우
- 파일 타입의 체크가 없는 경우
- 파일이 업로드 되는 경로가 외부에서 직접적으로 접근 가능하거나 실행 권한을 가지게 되는 경우
2. 취약점 제거를 위한 보안코딩 기법
- 업로드 되는 타입이나 확장자를 체크하여 허용되는 확장자 또틑 타입의 경우에만 업로드 할 수 있도록 한다.
- 업로드 되는 파일은 외부에서 직접 접근이 불가능한 경로에 저장한다.
- 업로드되는 파일의 이름과 실제 저장되는 파일의 이름을 다르게하여 공격자가 파일을 직접 엑세스 할 수 없도록 한다.
3. 시큐어 코딩
- 파일 확장자를 체크한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
if( !uploadedFile.isEmpty() ) {
String fileName = uploadedFile.getOriginalFilename();
if ( fileName.toLowerCase().endsWith(".jpg")
|| fileName.toLowerCase().endsWith(".jpeg")
|| fileName.toLowerCase().endsWith(".png")
|| fileName.toLowerCase().endsWith(".gif")
|| fileName.toLowerCase().endsWith(".bmp")) {
// 외부 URL 접근이 가능함.
File file = new File(FILE_PATH, uploadedFile.getOriginalFilename());
try {
uploadedFile.transferTo(file);
board.setFileName(uploadedFile.getOriginalFilename());
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
} |
cs |
- 외부에서 접근되지 않도록 웹 서버와 다른 파일 시스템을 사용하게 설정한다.
1 |
String uploadPath = session.getServletContext().getRealPath("/" + "WEB-INF/files/"; |
cs |
- 파일 사이즈 Context.xml 에서 설정하기
1
2
3
4
5 |
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="maxUploadSize" value="104857600" /> <!-- 100MB -->
<property name="defaultEncoding" value="UTF-8" />
</bean> |
cs |
'Secure Coding' 카테고리의 다른 글
안전하지 않은 예외처리 (2) | 2016.05.02 |
---|---|
크로스 사이트 요청 위조 [ CSRF ] (0) | 2016.04.29 |
크로스 사이트 스크립팅 [ XSS ] (0) | 2016.04.29 |
로그인 시도 횟수 제한 (0) | 2016.04.28 |
패스워드 정책 (0) | 2016.04.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Baekjoon Online Judege
- 자바
- algorithm
- java
- boj
- REDIRECT
- onBackPressed
- restfb
- Spring
- AlertDialog.Builder
- 예외처리
- order by
- sort
- BFS
- 이클립스
- mybatis
- onPostExecute
- indexOf
- table
- servlet
- RequestMapping
- jsp
- 안드로이드 스튜디오
- controller
- list
- DFS
- INSERT
- maven
- 안드로이드 비콘
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함