1. 안전하지 않은 예외처리 - 프로그램에서 발생되는 예외를 처리하지 않거나 적절하게 처리하지 않는 경우 - e.printStackTrace() : IDE 툴에서 자동으로 만들어주는 에러 스택 출력 메소드이다. 이 오류 메시지에는 시스템에 대한 상세한 정보가 출력된다. - 로그 파일에 예외시 출력된 스택 정보가 저장 되어 있는 지 확인하고, 스택 정보가 있다면 해당 사이트에 접속해 에러를 발생시켜 에러 처리 상태를 확인한다. 2. 예외처리 1 2 3 4 5 6 7 8 9 10 11 StringBuffer buffer = new StringBuffer(); String data = request.getParameter("data"); try{ data.trim(); } catch (Exception e) ..
1. 파일 업로드 / 다운로드 취약점 - 업로드 기능에서 파일 사이즈의 제한을 주지 않을 경우 - 파일 타입의 체크가 없는 경우 - 파일이 업로드 되는 경로가 외부에서 직접적으로 접근 가능하거나 실행 권한을 가지게 되는 경우 2. 취약점 제거를 위한 보안코딩 기법 - 업로드 되는 타입이나 확장자를 체크하여 허용되는 확장자 또틑 타입의 경우에만 업로드 할 수 있도록 한다. - 업로드 되는 파일은 외부에서 직접 접근이 불가능한 경로에 저장한다. - 업로드되는 파일의 이름과 실제 저장되는 파일의 이름을 다르게하여 공격자가 파일을 직접 엑세스 할 수 없도록 한다. 3. 시큐어 코딩 - 파일 확장자를 체크한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 if( !uplo..
크로스 사이트 요청 위조 : 사이트가 신뢰하는 사용자(인증된 사용자)를 통해 공격자가 원하는 명령을 대신 실행하게 된다. 대부분의 웹사이트에서 사용자가 보내는 요청 데이터가 정상적인 경로를 통한 요청인지 구분하지 못한다. 1. GET 방식 CSRF : 공격자는 게시판 등에 이미즈 태그를 보이지 않도록 사이즈를 최소화하여 자신의 계좌로 이체를 수행하는 요청 URL을 삽입해, 사용자가 해당 글을 클릭했을 때 계좌 이체가 실행되도록 공격할 수 있다. 2. POST 방식 CSRF : 가장 많은 CSRF 공격방식은 자동 글쓰기 이다. 3. 대응기법 : CSRF 공격 취약점을 예방하려면 실제 사용자의 브라우저에서 이볅된 값을 이용해 요청이 발생되었는지를 서버에서 점검할 수 있도록 해야 한다. - CSRF 를 근본적..
크로스 사이트 스크립팅 ( XSS ) : 게시판, 웹 메일 등에 삽입된 악의적인 스크립트에 의해 페이지가 깨지거나 다른 사용자의 사용을 방해허거나 쿠키 및 기타 개인정보를 특정 사이트로 전송시키는 공격 ( NAVER 지식백과 ) XSS 공격 유형에는 Reflective XSS, Stored XSS, DOM XSS 세 가지가 존재한다. 1. Reflective XSS - 공격자가 악성 스크립트가 포함된 URL을 클라이언트에게 노출시켜 클릭하도록 유도하여 쿠키 정보를 탈취하거나, 피싱사이트, 불법 광고 사이트로 이동하게 한다. - JSP나 서블릿 코드에서 사용자의 입력 값을 검증하지 않고 그대로 브라우저로 출력하는 경우 발생한다. - 텍스트 필드에 를 입력하여 전송버튼을 눌렀을 때, Alert 창이 뜨게 된..
1. 로그인 시도 횟수 제한 - 로그인 시도 횟수에 제약을 주지 않는다면 공격자는 툴을 이용하여 무작위 대입 공격을 시도해 사용자의 로그인 정보를 얻을 수 있다. - 때문에 로그인 시도에 대한 횟수를 체크하여 계정에 대한 보호조치를 취하여 대입공격을 막아야 한다. - Standalone 서버에서 Singleton Pattern 의 코드를 사용하면 편리하다. 2. Singleton Pattern ? - 객체를 한번만 생성하고, 그 객체에 접근이 가능하도록 하는 기능 - 객체 생성할 때 실행되는 생성자는 private로 접근을 막는다. - 기존의 방법으로 생성자를 매번 생성한다면 객체마다 값이 달라지지만 Singleton을 이용하면 값이 같아진다. 3. Singleton Pattern을 이용한 로그인 시도 ..
1. 일반적으로 권고되는 패스워드 정책 - 대/소문자, 숫자, 특수문자를 혼용하여 8 글자 이상의 패스워드를 사용하도록 한다. - 동일 문자를 연속 4회이상 사용하지 못하도록 한다. - 패스워드 히스토리를 관리해 2~3개 이상 동일 패스워드를 사용하지 못하도록 한다. - 패스워드 변경 주기를 설정한다. ( 패스워드 유효기간을 90일 이하로 설정 ) - 연속적인 숫자/문자 조합 및 생일, 전화번호 등 추측하기 쉬운 패스워드 사용을 금지한다. - 사전에 나오는 쉬운 단어나 이름은 패스워드로 사용하지 못하도록 한다. - 기본 설정된 패스워드는 사용하지 못하도록 설정한다. - 초기 부여된 패스워드는 사용자 최초 접속시 변경하도록 한다. 2. 패스워드 체크를 위한 시큐어 코딩 기법 권고되는 패스워드 정책 중에서 ..
- Total
- Today
- Yesterday
- restfb
- list
- mybatis
- algorithm
- indexOf
- 자바
- onBackPressed
- Spring
- RequestMapping
- controller
- DFS
- jsp
- boj
- INSERT
- AlertDialog.Builder
- order by
- maven
- DP
- sort
- 안드로이드 스튜디오
- servlet
- BFS
- Baekjoon Online Judege
- java
- onPostExecute
- table
- 안드로이드 비콘
- 이클립스
- 예외처리
- REDIRECT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |