csrf 토큰에 대해 설명하겠다.
1. 클라이언트는, 서버쪽에 회원가입 페이지 요청을 한다.
(주소창에 /auth/signup get 요청)
2. 서버는 이에 대한 응답으로 signup.jsp 파일, 즉 회원가입 화면을 클라이언트에게 보여준다.
그런데, 이 때 스프링 시큐리티가 아이디, 비밀번호 등 각 input 태그에 예를 들어 A라는 임의의 값(csrf 토큰)을 붙여 놓는다.
(jsp 파일의 input 태그를 의미)
3. 사용자가 회원가입 페이지에서 아이디, 비밀번호를 입력한 후 회원가입 요청을 하면 (서버쪽에 post 요청을 보냄)
(회원가입은 post 요청)
4. 서버는 자신이 보낸 csrf 토큰이 있는지 확인을 한다.
그래서 있다면 정상적으로 회원가입이 가능하게 해준다.
(정상 요청)
5. 그런데 만약 postman 처럼 외부에서
/auth/signup (post 요청)
아이디, 비밀번호 입력 후 회원가입 요청하면
403 에러가 나오면서 회원가입이 안된다.
(비정상 요청)
그런데 우리는 프로젝트를 진행하면서 csrf 토큰을 비활성화 시킬 것인데,
이게 활성화되어 있으면 javascript 요청도 어렵고 해서..
일단 비활성화
그래서 아래 페이지에 들어가면
https://happy-fun.tistory.com/153
스프링 시큐리티 세팅
스프링 시큐리티를 프로젝트에 작동시키면 (pom.xml 에 시큐리티 의존성 설정되어 있으면 작동) 내가 만드는 프로젝트에는 아래와 같은 의존성 설정했음 파일 org.springframework.security spring-security-tag
happy-fun.tistory.com
http.csrf().disable();
이렇게 비활성화 시킴
참고 자료 : 이지업 강의 사이트 "스프링부트 SNS프로젝트 - 포토그램 만들기"
csrf 토큰 설명
참고 자료 : https://codevang.tistory.com/282
Spring Security_CSRF Token의 개념과 사용 방법
- Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.2.9 Release - Build Tool : Maven 3.6..
codevang.tistory.com
csrf 토큰 jwt 토큰에 대한 설명
참고 자료 : https://minkukjo.github.io/cs/2020/08/15/Security-1/
CSRF 공격과 CSRF Token에 대하여
들어가기에 앞서
minkukjo.github.io