(1) 실습화면: openeg 사이트 > 보안코딩 테스트 > 오픈리다이렉트
(2) 실습파일: kr.co.openeg.test.controller.TestController.java
(3) 취약점 동적진단:
요청URL 값을 변조하여 허용되지 않은 사이트로 요청을 이동하도록 테스트 한다.
(4) 시큐어코딩기법 :
리다이렉트를 허용할 URL 목록을 하드코딩하여, 사용자의 요청에 따라 지정된 URL을 이용하도록 제약을 준다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 다른 페이지 이동하는 URL 리스트를 만든다. String allowURL[] = { "http://url1.com", "http://url2.com", "http://url3.com" }; // 입력받는 url은 미리 정해진 URL의 order로 받는다. String nurl = request.getParameter("nurl");
try { Integer n = Integer.parseInt(nurl); if ( n >= 0 && n < 3) response.sendRedirect(allowURL[n]); } catch (NumberFormatException nfe) { // 입력 값이 숫자가 아닐 경우 적절히 에러를 처리한다. } } |
'보안 > 시큐어코딩' 카테고리의 다른 글
OWASP Mobile Top 10 (0) | 2015.05.12 |
---|---|
PMD Custom Rule (0) | 2015.05.11 |
[시큐어코딩실습] 잘못된 접근제어 취약점 제거 안전한코딩 (0) | 2015.03.06 |
[문제풀이] 학습확인문제 정답 (0) | 2015.02.23 |
Spring Security 3 을 이용한 보안 강화 (0) | 2015.01.18 |