- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[Spring] response.sendRedirect() 사용시 주의사항 본문
response.sendRedirect() 서버가 사용자의 브라우저를 지정한 URL 로 리다이렉트 시킬 수 있는 유용한 도구이다.
Spring 에서는 Controller에서 반환 String에 "redirect:" 라는 prefix를 붙여주면 동일한 기능을 수행하게 되어서 Spring에서는 잘 사용하지 않고 있다.
그러나 interceptor와 같은 곳에서 redirect 시키도록 하기 위해서는 response.sendRedirect()를 반드시 사용해야한다.
response.sendRedirect() 의 문제점
response.sendRedirect() 를 사용하면서 주의해야할 점은 저 메서드를 호출한다고 break가 걸리는게 아니라는것이다.
다시 설명하자면 throw new Exception() 을 호출하게되면 break가 걸리게되어 catch를 만날때까지 스텍을 거슬러 올라가게 된다.
그러나 response.sendRedirect() 의 경우는 그냥 response에 redirect를 하라 라는 명령만 저장하는 기능을 갖고 있다고 보면된다.
response.sendRedirect() 호출 뒤에 있는 로직이 그대로 수행되게 된다.
만약 if(value == null) 을 검사한 뒤 response.sendRedirect() 만 호출해주게 되면 그 이후 로직이 그대로 수행되면서 NullPointException을 발생시키게 될것이다.
보안상 이유때문에 response.sendRedirect()를 호출하게 되는 상황은 좀 더 심각한 문제가 된다.
보안 로직이 수행되도록 redirect를 시키려고 한 것인데 response.sendRedirect() 구문 이후의 로직이 그대로 실행되기 때문에 보안상 제대로 막았다고 보기 힘들다.
그래서????
response.sendRedirect() 가 호출된 이후의 로직이 완벽하게 break가 될 필요가 있다.
response.sendRedirect()는 주로 Interceptor에서 많이 사용하고있다. Interceptor의 preHandle 의 경우 return type이 boolean이다.
간단히 response.sendRedirect()를 호출한 후 return false;를 호출해주게 되면 도착한 interceptor까지만 수행되게 될 것이다.
'★─Programing > ☆─WebProgram' 카테고리의 다른 글
[Spring] jsp 홈페이지 주소(도메인 까지) 가져오기 (0) | 2017.02.24 |
---|---|
[HTML] title(타이틀;말풍선) 속성과, img 태그의 alt 속성의, 차이점 (0) | 2016.12.20 |
[Maven] 이클립스 Maven 연동 시 plug in 에러 날 경우 (0) | 2016.12.09 |
[JavaScript] a태그에서의 onclick 이벤트의 이용법 (0) | 2016.12.09 |
[Security] 세션 ID가 업데이트되지 않음 (0) | 2016.11.09 |