CSRF(Cross Site Request forgery)

사용자의 의지와 무관, 공격자의 의도대로 서버에 특정 요청을 보내도록 하는 공격 방식

A라는 도메인에서, **인증된 사용자 H**가 **위조된 request**를 포함한 link, email을 사용하였을 경우

이 사용자가 일반 유저인지, 악용된 공격인지 구분할 수가 없다.


Spring Security CSRF

CSRF는 Spring Security에서 default로 설정

즉 protection을 통해 GET 요청을 제외한

상태를 변화시킬 수 있는 POST, PUT, DELETE 요청으로부터 보호

**CSRF protection을 적용**했을 때

html에서 다음과 같은 csrf 토큰이 포함돼야 요청을 받아들이게 됨으로써 위조 요청을 방지

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>

REST API에서의 CSRF

@Bean 
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
    return http
            .csrf().disable()

disable 하는 이유가 뭘까??