CSRF 공격이란?
- 사용자 의지와 무관하게 공격자의 의도대로 서버에 위조 요청을 하는 것.
- 즉, 사용자의 권한을 이용해 서버에 변조된 요청을 보내는 공격 방식을 의미.
CSRF 토큰
- CSRF 공격으로부터 보호하기 위한 위조 요청 판별 토큰.
- 서버에 들어온 요청이 실제 서버에서 전송한 요청이 맞는지 확인한다.
- Spring Security 3.2.0 이후 버전부터 지원.
- 판별 과정
- 서버에 들어온 view 페이지 전송 시 랜덤으로 생성한 CSRF 토큰을 함께 전송한 뒤 관련 값을 사용자 세션에 저장해둔다.
- 사용자가 서버에 작업 요청 시 페이지에 hidden으로 숨어있는 토큰 값이 함께 서버로 전송되는데, 서버는 이 토큰이 세션에 저장된 값과 일치 하는지 확인하여 위조 여부를 판단한다.