본문 바로가기
Web Security/SecureCoding

신뢰 되지 않는 URL 주소로 자동 접속 연결

by KkingKkang 2022. 11. 15.

- 자동 연결할 외부 사이트의 URL 과 도메인은 화이트 리스트로 관리하고, 사용자 입력값을 자동 연결할 사이트주소로 사용하는 경우에는 입력된 값이 화이트 리스트에 존재하는지 확인해야 한다. 

안전하지 않은 코드 ▼

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOExcepetion {
	String query = request.getQueryString();
    if(query.contains("url")) {
    	String url = request.getParameter("url");
        response.sendRedirect(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) {
    }
 }

 

 

반응형

'Web Security > SecureCoding' 카테고리의 다른 글

상대 디렉터리 경로 조작  (0) 2022.11.16
크로스사이트 요청 위조  (0) 2022.11.16
위험한 형식 파일 업로드  (0) 2022.11.15
크로스 사이트 스크립트  (0) 2022.11.11
자원 삽입  (0) 2022.11.11

댓글