CSRF란?
사이트 간 요청 위조(Cross-site request forgery, CSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. - 위키백과
최근에 스프링 시큐리티를 공부하게 되면서 CSRF에 대해 알게 되었는데 옛날에 프로젝트에서 spring security로 jwt인증을 구현했었는데 CSRF를 disabled 한 기억이 있어서 이때는 왜 disabled 했는지 궁금증이 생겨 공부를 하게 되었다.
Rest api에서의 CSRF
Spring security documentation에 non-browser clients위해 서비스를 진행한다면 csrf를 disable 해도 좋다고 쓰여있다.

여기서 Non-browser clients는 웹 브라우저 외부에서 서버와 통신하는 클라이언트 애플리케이션을 가리킵니다. 이러한 클라이언트 애플리케이션은 주로 웹 브라우저가 아닌 방식으로 서버와 상호작용합니다.
즉, Rest api 형식으로 만들었던 전프로젝트에서 disable 했던 것이였습니다.
그렇다면 해제해도 되는 이유는 무엇일까?
Rest api를 이용한 서버라면 session 기반 인증과 다르게 stateless 하기 때문에 서버에 인증 정보에 보관하지 않는다는 것을 알 것이다. 즉 Rest api에서 권한이 필요한 요청을 하기 위해서는 요청에 필요한 정보(OAuth2, jwt토큰 등)를 포함시켜야 한다.
'Spring' 카테고리의 다른 글
| [SPRING]JDBC 템플릿사용 DAO 변경해보기 (0) | 2022.11.08 |
|---|---|
| Spring mvc2 패턴 (0) | 2022.11.01 |
| [Spring] 스프링 프레임워크 첫걸음~ (1) | 2022.10.26 |
댓글