Secure Coding Guide | 신뢰되지 않은 URL 주소로 자동 접속 연결
정의
검증되지 않은 외부 입력값이 URL링크 생성에 사용되어 악의적인 사이트로 자동 접속될 수 있는 보안약점이다.
영향
악성코드가 설치되거나 중요 정보 노출된다.
조치 방법
URL 파라미터에 대한 검증을 수행하지 않은 경우, 발생한다.
안전하지 않은 jsp 코드 일부
<html>
<head>
</head>
<body>
URL : ${param.url}
<%
if (request.getParameter("url") != null)
response.sendRedirect(request.getParameter("url"));
%>
</body>
</html>
URL 파라미터에 대한 검증을 수행하지 않았다.
안전한 jsp 코드 일부
<html>
<head>
</head>
<body>
URL : ${param.url}
<%
// 다른 페이지 이동하는 URL 리스트
String allowURL[] = { "http://url1.com", "http://url2.com", "http://url3.com" };
// 입력받는 url은 미리 정해진 URL의 order로 받음
if (request.getParameter("url") != null)
Integer n = Integer.parseInt(url);
if (n >= 0 && n < 3)
response.sendRedirect(allowURL[n]);
%>
</body>
</html>
이동에 대한 URL을 선택하게끔 수정한다.
최종 수정 : 2018-05-27