△/SecureCoding
신뢰 되지 않는 URL 주소로 자동 접속 연결
KkingKkang
2022. 11. 15. 17:11
728x90
- 자동 연결할 외부 사이트의 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) {
}
}
728x90