Spring Security를 사용하여 요청 권한 설정하기
·
Backend
개요이전에 유레카 미니프로젝트에서 진행한 Spring Boot 프로젝트를 배포하였는데 설계 미스로 인한 보안 문제가 발생했다.미니프로젝트의 주제는 유레카 부트캠프 사람들간의 경매 서비스이며, 서버에서는 회원가입&로그인, 입찰 등록&조회, 판매글 등록&조회&수정&삭제, 회원 정보 수정, 공지사항 등록&삭제 기능을 한다. 보안이 우려되는 부분은 다음과 같다.사용자가 특정 권한을 가지고 있지 않아도 endpoint와 요청 데이터만 일치한다면 원하는 결과를 얻을 수 있는 문제.이는 결국 로그인을 하지 않아도 로그인 한 사용자만 이용할 수 있는 서비스에 요청을 할 수 있다는 것을 의미하였고, 더 나아가 관리자 권한이 필요한 요청이라도 요청 데이터만 일치하다면 원하는 결과를 얻을 수 있다는 것을 의미한다.서버에서 ..
[NP]TCP/IP(Transmission Control Protocol/Internet Protocol) 소켓 통신
·
Backend
개요 대부분의 네트워크는 클라이언트와 서버로 나눌 수 있다. 웹 클라이언트와 서버는 TCP 프로토콜을 이용하여 통신한다. 일반적으로 사용되는 분야는 실시간 통신, 메일, 컴퓨터 간 파일 전송, 원격 로그인이 있다. 기본적으로 알아야 할 용어와 개념은 다음과 같다. 소켓: 두 프로그램이 서로 데이터를 주고 받을 수 있는 양쪽에 생성되는 통신 단자 소켓 통신: 서버와 클라이언트 양방향 연결이 이루어지는 통신, 그림으로는 다음과 같다. 클라이언트는 서버에 request를 보내고 서버는 reply를 보낸다. 흐름 소켓 통신의 흐름은 다음과 같다. 1. 서버와 클라이언트가 있으면 서버부터 실행한다. 2. 클라이언트는 서버에 요청을 보낸다. 3. 서버는 이를 처리한 후 클라이언트에 답장을 보낸다. 4. 클라이언트는..