- 자동 연결할 외부 사이트의 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) {
}
}
반응형
'△ > SecureCoding' 카테고리의 다른 글
상대 디렉터리 경로 조작 (0) | 2022.11.16 |
---|---|
크로스사이트 요청 위조 (0) | 2022.11.16 |
위험한 형식 파일 업로드 (0) | 2022.11.15 |
크로스 사이트 스크립트 (0) | 2022.11.11 |
자원 삽입 (0) | 2022.11.11 |
댓글