해당 프로젝트 기반 실제 코드로 설명

https://github.com/Aguantar/lgtest


2. CSRF_TOKEN 사용 이유

[A]

1. 회원가입(GET /register) 페이지 진입 시

1) 사용자가 브라우저로 **/register**로 이동하면…

실제 코드(컨트롤러)

java*// AuthController.java* @GetMapping("/register") public String registerForm(Model model) { model.addAttribute("user", new User()); return "register"; *// WEB-INF/views/register.jsp* }

2) JSP에 자동으로 CSRF 토큰이 제공됨

text<form action="<c:url value='/register' />" method="post"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <!-- 나머지 회원 입력 폼 --> </form>

2. 사용자가 회원가입 폼(POST /register) 전송 시

1) 브라우저가 POST 요청 전송

textPOST /register HTTP/1.1 ... _csrf=1234abcd... username=hong&password=pw1234&role=ROLE_USER

2) 서버는 요청에서 CSRF 토큰 추출 후 검증