springSecurity (3) 썸네일형 리스트형 CSRF란? CSRF란? 사이트 간 요청 위조 (Cross-site Request Forgery) 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격을 말한다. -위키피디아- 공격 시나리오 예시를 들기 위해 티스토리 블로그를 사용한다는 가정을 하겠습니다. 티스토리 게시물 작성 URL은 POST방식의 www.tistory.com/write?title=abcd&content=1234 이라고 임의로 정하겠습니다. 1. 사용자는 티스토리에 접속하여 세션 ID를 발급받은 후 로그인을 성공해 줍니다. 로그인을 성공하게되면 해당 세션 ID를 이용하여 위에서 정한 게시물 작성 URL을 통해 게시글 작성이 가능해질 것입니다. 2. 공격자는 사용자에게 이메일 보.. [SpringSecurity] 인증성공, 실패 핸들러 로그인에 성공을 하거나 실패를 했을 때 부가작업을 해보려고 합니다. 1. 인증성공 - 로그인 성공시, Redirect할 URL 설정 예를 들어, 로그인을 하지 않은 경우에 권한이 있는 페이지에 접근을 하려고 하면 로그인 페이지로 넘어가는 경우가 있습니다. 이 과정에서 로그인을 성공 했을 때 Redirect할 URL이 접근 하려고 시도 했던 페이지의 URL이 되어 그 페이지로 바로 넘어가도록 해보겠습니다. @Component public class CustomAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { private RequestCache requestCache = new HttpSessionRequestCache.. [SpringSecurity] 인증부가기능(WebAuthenticationDetails, WebAuthenticationDetailsSource) 인증 부가기능이란? SpringSecurity에서 보통 ID와 PASSWORD를 이용하여 로그인 처리를 합니다. 하지만 ID, PASSWORD 이외에도 추가로 파라미터를 전달하여 인증과정 속에서 활용하거나 인증 이후에도 이 정보들을 참조하여 사용자가 서버에 접근할 수 있도록 하고 싶다면 이러한 방법이 있습니다. WebAuthenticationDetails, WebAuthenticationDetailsSource 이 두 개의 클래스에 의해 파라미터를 추가할 수 있는데, 이 것의 흐름은 이렇습니다. 1. 사용자가 ID와 PASSWORD 그리고 PARAM1과 PARAM2를 입력하여 전송합니다. 2. 이 request 객체는 AuthenticationFilter를 통해 Authentication 인증 객체를 만.. 이전 1 다음