728x90
반응형
0. 이 글을 쓰는 이유
대부분의 spring security 가이드에서는 csrf를 disable하는데 csrf는 뭐고 왜 disable처리하는지 궁금해서 정리하기 위함
1. CSRF란?
Cross Site Request Forgery : 사이트간 위조 요청
웹사이트 취약점 공격 방법 중 하나로 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
2. Spring Security에서는?
CSRF에 대한 예방 기능을 제공한다.
https://docs.spring.io/spring-security/reference/features/exploits/csrf.html
3. 이 좋은 기능을 왜 강의나 가이드에서는 다 disable처리를 하고 있을까?
스프링 시큐리티의 문서를 다시 읽어보자.
When to use CSRF protection
When should you use CSRF protection? Our recommendation is to use CSRF protection for any request that could be processed by a browser by normal users. If you are creating a service that is used only by non-browser clients, you likely want to disable CSRF protection.
일반 사용자가 브라우저에서 처리할 수 있는 모든 요청에 CSRF 보호를 사용할 것을 권장합니다. 브라우저를 사용하지 않는 클라이언트만 사용하는 서비스를 만드는 경우 CSRF 보호를 비활성화하는 것이 좋습니다.
브라우저를 사용하지 않는 클라이언트만 사용하는 서비스라.. 실은 대부분의 REST API서비스를 의미하는 것으로 이해가 된다.
즉 대부분의 가이드는 REST API 서버 기준으로 disable을 진행하고 있다는 말로 해석이 된다.
4. 그러면 사용자에 대해서는?
user의 로그인 요청 등에 대해서는 적용을 해야할 것으로 보인다.. 그러면 사용자 인증/인가와 관련된 기능과 그렇지 않은 기능들에 대해서는 서버를 나누어서 가는게 맞는 방식일까? 이건 고민을 좀 해봐야할 것 같다.
728x90
반응형
'JAVA > spring' 카테고리의 다른 글
[Test] h2대신 postgresql을 DB로 대체해본.ssul (1) | 2023.11.04 |
---|---|
Spring Cloud Netflix Zuul을 바라보며 (1) | 2023.10.28 |
테스트 진행하기(Entity 기본과 약간의 Repository를 곁들인) (0) | 2023.08.05 |
Spring + discord webhook 연동하기 (2) | 2023.07.13 |
spring + slack webhook 연동하기 (0) | 2023.07.12 |