Secure Coding
안전하지 않은 예외처리
best
2016. 5. 2. 16:32
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) {
buffer.append("입력값이 유효하지 않다.");
return;
}
buffer.append("이 메시지가 보여지지 않아야한다.");
doProcessingNext();
|
cs |
data 파라미터가 전달되지 않았을 경우 NullPointerException 이 발생한다.
만약 에러가 발생되면 return; 을 수행하여 "이 메시지가 보여지지 않아야한다." 로 지행되지 않는다.
결국 "입력값이 유효하지 않다." 만 출력되게 된다.
3. NullPointerException 처리
1
2
3
4
5
6
7
8 |
String data1 = request.getParameter("data1");
String data2 = request.getParameter("data2");
if( data1 != null && data2 != null && data1.equals("name") && data2.equals("phone") ) {
out.println("이름과 번호가 확인되었습니다.");
} else {
out.println("확인되지 않은 고객입니다.");
}
|
cs |
null 이 될 수 있는 값은 참조하기 전에 null 인지 검사해야 한다. 만약 data가 널이 아니고 조건을 만족한다면
"이름과 번호가 확인되었습니다." 가 출력되고, 그렇지 않다면 "확인되지 않은 고객입니다." 라고 출력된다.