스프링 시큐리티는 기본적으로 CSRF(크로스 사이트 요청 위조) 라는 공격을 방어하기 위해서 임의의 값을 만들어서 이를 GET방식을 제외한 모든 요청방식(POST,PUT,DELETE)등에 포함시켜야만 정상적인 동작이 가능하다.
서버에서 받아들이는 요청을 해석하고 처리할때 어떤 출처에서 호출이 진행되었는지를 따지지 않기 떄문에 생기는 허점을 노리는 공격 방식이다.
= 간단히 말해 특정 권한을 주거나 특정 동작을 하는 url 을 숨겨서 사용자가 누르면 동작하는 원리이다.
현재 만든 사이트에서 검사를 해보면 hidden값으로 CSRF토큰값이 있다
CSRF토큰 값은 세션하나당 하나
일반적인 세션을 이용하고 form태그를 이용하는 방식에서는 CSRF토큰이 보안상으로 권장 되지만 /REST방식 등에서 매번 CSRF토큰의 값을 알아내야 하는 불편함이 있어 경우에 따라서 CSRF토큰을 발행하지 않을수도 있다.
logout() 메서드를 이용해 로그아웃 처리가 가능하다.
CSRF토큰을 사용할때는 반드시 POST 방식으로만 로그아웃을 처리한다.
CSRF토큰을 사용X 할떄는 GET방식으로도 로그아웃이 처리된다.