-
[Spring Security] invalid csrf token 'null' was found on the request parameter '_csrf' or header 'x-csrf-token'Java/Spring Framework 2016. 12. 26. 22:52728x90반응형
Spring Security를 이용하여 로그인을 구현하는데 다음과 같은 에러가 발생했다.
CSRF Token이 널이라는거 같은데... 토큰을 넘겨줘야 하나?
(참고로 CSRF는 Cross Site Request Forgery의 약자로, 해커가 피해자의 권한으로 누군가 악성 코드를 실행하게 하는 해킹 기법이란다.)
구글링을 해보니 2가지의 방법이 나온다.
첫째. CSRF 기능을 꺼버린다.
@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { .... http.csrf().disable(); }
CSRF 기능을 꺼버림으로써 위의 에러가 나지 않게 한다.
간단하긴 한데, 그러면 뭔가 CSRF 공격에 취약질거 같아서 불안하다.
둘째. CSRF 토큰값을 넘겨준다.
로그인 할 때 CSRF 토큰값을 hidden으로 담아서 넘겨준다.
thymeleaf를 사용하는 경우 접두어 th:만 붙여주면 된다.소스보기로 확인해보면 다음과 같다.아니면, form태그의 action에서 parameter로 붙여주면 된다고 한다.
반응형'Java > Spring Framework' 카테고리의 다른 글