[ODOP] 80일차 - CSRF, CsrfFilter
![[ODOP] 80일차 - CSRF, CsrfFilter](/content/images/size/w1200/2023/08/-----2023-08-01----10.29.26-13.png)
- 모든 요청에 랜덤하게 생성된 토큰을 HTTP 파라미터로 요구
- 요청 시 전달되는 토큰 값과 서버에 저장된 실제 값과 비교한 후 만약 일치하지 않으면 요청은 실패한다
Client
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
위와 같이 서버에서 발급한 csrf 토큰을 사용하여 요청해야 한다
- HTTP 메소드:
PATCH
,POST
,PUT
,DELETE
Spring Security
- http.csrf() : 기본 활성화 되어있음
- http.csrf().disabled() : 비활성화
![](https://blog.pollra.com/content/images/2023/08/-----2023-08-16----7.51.50.png)
CsrfFilter 에서는 위의 121줄 코드와 같이 header, 123줄 parameter 를 확인하여 csrf 토큰이 있는지 확인하고있다
타임리프나 다른 뷰 템플릿 언어에서는 CSRF 에 대해 지원을 해 주는데, JSP 의 경우는 지원해주지 않는다
따라서 지원해주지 않는 환경에서는 위와 같은 설정을 해 주어야 한다 <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>