본문 바로가기

CSRF 토큰2

AJAX 사용 시 CSRF 토큰 쿠키 httpOnly 옵션 사용 여부? CSRF 방어에 대해 공부하면서 안전한 CSRF 저장 방식과 사용 방식에 대한 고민을 하게 되었다. 스프링에서 제공하는 CSRF 저장소에는 세션과 쿠키 두 가지가 있는데, 전자를 사용할 경우 세션에서 토큰을 꺼내서 폼에 토큰을 추가하여 클라이언트에 전달하게 되고, 후자를 사용하게 될 경우 토큰을 쿠키에 담아 클라이언트에게 전달하게 된다. 세션을 사용하게 되면 토큰 값이 노출되고 뷰에 토큰을 삽입하는 코드를 작성해야 해서, 쿠키를 사용하는 것이 더 안전하고 편리해 보였다. 따라서 쿠키 방식을 사용하기로 정하였다. 이 경우, 스프링 시큐리티의 기본값이 세션 저장 방식이기 때문에 쿠키 저장 방식으로 설정을 바꿔줘야 한다. 그러고 나서 httpOnly 옵션을 false로 설정할 것인가 말 것인가를 선택해야 하는.. 2024. 3. 17.
스프링 시큐리티로 CSRF 방지 설정하기 CSRF 공격이란? CSRF(Cross Site Request Forgery) 공격은 사용자가 의도하지 않은 요청을 악용하여 악의적인 행위를 유도하는 기법이다. 웹 애플리케이션은 일반적으로 사용자를 인증하기 위해 세션 쿠키나 인증 토큰을 사용하는데, CSRF 공격자는 이 인증 정보를 이용하여 피해자인 것처럼 요청을 보낸다. 이를 통해 공격자는 피해자의 권한으로 악의적인 동작을 수행할 수 있다. 예를 들어, 피해자가 로그인한 상태에서 공격자가 조작한 링크를 클릭하면, 웹 애플리케이션은 피해자의 인증 정보를 사용하여 공격자가 조작한 요청을 수행한다. 이로써 공격자는 피해자의 계정으로 의도하지 않은 동작을 수행할 수 있게 된다. 스프링 시큐리티에서는 기본적으로 CSRF 방지를 활성화한다. HttpSecurit.. 2024. 3. 17.
728x90