1. Cookie 클라이언트가 웹사이트에 접속할 때 그 사이트가 사용하게 되는 일련의 작은 기록파일. 서버가 클라이언트에 정보를 전달할 때 저장하고자 하는 정보를 응답 헤더(Cookie)에 저장하여 전달합니다. 쿠키는 간단하게 이야기 하자면 로그인 했을 때 Set-Cookie 형태로 반환을 받은 쿠키를 토대로 로그인이 필요한 요청을 할 때마다 받은 쿠키를 던져 요청하는 동작 구조를 가집니다. 이렇게 쿠키를 사용하는 이유는 어떤 특정 정보를 저장해야 했기 때문입니다. 위 처럼 예를 들어보면 우리는 최초로 ID, PW를 가지고 로그인을 하고 난 이후에는 별 다른 ID, PW 없이 로그인이 된 상태에서 요청을 날릴 수 있습니다. 쿠키가 없었다면 매번 요청을 할때마다 위의 쿠키로 ID, PW를 동시에 사용자가 ..
백엔드/Spring
1) Validation Validation이란 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해 데이터 검증(Validation)은 여러 계층에 걸쳐서 적용됩니다. Client의 데이터는 조작이 쉬울 뿐더러 모든 데이터가 정상적인 방식으로 들어오는 것이 아니기 때문에, Client Side뿐만 아니라 Server Side에서도 데이터 유효성을 검사해야 할 필요가 있습니다. 스프링부트 프로젝트에서는 @Validated를 이용해 유효성을 검증할 수 있습니다. 2) 사용 방법 memberController.java public MemberVO getMemberDetail(@Validated MemberQuery memberQuery) { code } Contoller에서 유효성 검사를 적용할 API의 R..
잘 작성된 API 문서는 작업의 시간과 테스트 시간을 줄여주기 때문에 효율을 극대화시킬 수 있다. API 문서를 작성할 때 Swagger를 사용한다면 간편하게 문서를 작성할 수 있어 좋은 프레임워크로 평가 받고 있다. 이번 포스팅에서는 Swagger의 Annotation을 이용하여 API 문서의 설명을 구체화하고, Java Bean Validation을 이용하여 API 사용 시 유효성 체크에 관한 내용을 다뤄보고자 한다. 1) API 그룹 : @Tag Tag에 설정된 name이 같은 것 끼리 하나의 api 그룹으로 묶는다. @Tag(name = "member", description = "회원 API") public class MemberController { name : 태그의 이름 descriptio..
CSRF란 Cross Site Request Forgery의 약자로 크로스 사이트 요청 위조를 의미한다. 이러한 공격으로부터 보호하기 위해 CSRF Token을 만들어 사용한다. 클라이언트는 어떻게 CSRF 토큰을 얻나요 방법1. 서버 HTML 렌더링 시 meta 태그에 토큰을 집어 넣어주는 방법 방법2. 서버가 HTML 렌더링시 form 태그에 _csrf 필드를 넣어주는 방법 방법3. 서버의 API 호출 방법 RESTful 서버는 뷰 렌더링을 사용하지 않으므로, CSRF 토큰을 얻을 수 있는 별도의 API를 클라이언트에게 제공한다. 클라이언트는 발급받은 토큰을 요청 헤더에 넣어 요청한다. 서버는 토큰을 어떻게 생성하나요? public class WebSecurityConfig extends WebSec..