목록CS (13)
나나나
토큰 기반 인증 모던 웹서비스에서 많이 사용되고 있으며 토큰을 사용해 유저들의 인증작업을 처리하는 것 장점 Stateless 서버 상태를 유지 않는 서버로 상태 정보를 저장하지 않는다. 그러므로 서버는 클라이언트측에서 들어오는 요청만으로 작업을 처리한다. 이렇게 상태 정보가 없는 경우 클라이언트와 서버의 연결고리가 없어 서버의 확장성이 높아진다 모바일 어플리케이션 모바일 어플리케이션에 사용할 안전한 API를 만들기 위해서는 쿠키 같은 인증시스템은 이상적이지 않다. 토큰 기반 인증을 도입해 더욱 간단하게 해결할 수 있다. 인증 정보 전달 다른 웹서비스에서도 로그인하는 것이 가능해진다. 대표적으로 OAuth가 있고 페이스북/구글같은 소셜 계정을 이용하는 것을 말한다. 보안 토큰 기반 인증 시스템으로 어플리케..
동기(Synchronous)와 비동기(Asynchronous) 작업을 수행하는 주체가 두 개 이상 처리해야 할 작업들을 어떤 흐름으로 처리할 것인가 호출되는 함수의 작업 완료 여부를 누가 신경 쓰느냐 동기 작업을 수행하는 두 개 이상의 주체가 동시에 수행을 시작하거나, 동시에 끝나거나, 한 주체의 수행이 끝나는 동시에 다른 주체가 시작하는 것을 의미한다. 비동기 두 주체가 서로의 수행 시작, 종료 시간과 관계 없이 별도의 수행 시작, 종료 시간을 가지고 있는 것을 의미한다. A가 B를 호출했을 때 B가 작업을 완료하고 리턴하길 기다리거나, B로부터 바로 리턴 받더라도 작업 완료 여부를 A가 계속 확인하면서 신경 쓴다면 동기이고, 어떤 상황에서든 A가 B의 작업 완료를 신경쓰지 않으면 비동기이다. 블로킹(..
Authentication(인증) 사용자를 식별하고 누구인지 확인하는 프로세스이다. Authorization(인가/승인) 해당 사용자에게 리소스에 대한 엑세스 권한을 부여하는 것이다. (사용자의 신원이 성공적으로 인증된 후에 발생) Authentication 자신이 주장하는 사용자가 누구인지 확인하는 행위로 모든 보안 프로세스의 첫 번째 단계이다. 암호 : 사용자 이름과 암호는 가장 일반적인 인증 요소이다. 사용자가 올바른 데이터를 입력하면 시스템은 신분이 유효한 것으로 간주하고 액세스 권한을 부여한다. 일회성 핀(One-time pins) : 하나의 세션 또든 트랜잭션에만 액세스 권한을 부여한다. 인증 앱 : 액세스를 담당하는 외부 기관을 통해 보안 코드를 생성한다. 생체 인식 : 사용자는 시스템에 엑..
프록시 서버 클라이언트와 서버 사이에 있는 중계 서버 요청이 들어오면 프록시 서버는 요청을 가로채 해당 클라이언트를 대신하여 웹 서버와 통신한다. 포워드 프록시(Forward Proxy) 일반적인 프록시 사용법 클라이언트가 example.com에 연결하려고 하면 포워드 프록시 서버가 요청을 받아 example.com에 연결하여 그 결과를 전달(forward)함 브라우저가 웹 서버의 url로 정보를 요청하면 포워드 프록시 서버는 요청을 가로챔 프록시 서버가 브라우저를 대신하여 요청한 url에 해당하는 서버에게 요청을 보냄 서버에게 클라이언트가 누구인지 감추는 역할 사용 목적 및 장점 특정 컨텐츠 및 서비스에 대한 접근 차단 : 클라이언트 그룹이 특정 사이트에 접근하지 못하도록 프록시를 설정(학교 네트워크로..
웹 서버(Web Server) 소프트웨어 혹은 웹 서버 소프트웨어가 동작하는 컴퓨터를 일컫는다. 소프트웨어 : 웹 브라우저로부터 HTTP요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램 웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서와 각종 리소스의 전달하는 것이다. 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적 데이터 혹은 동적인 결과가 될 수 있다. 웹 크롤러도 브라우저처럼 웹 서버에 HTTP에 맞도록 리소스를 요청하고 웹 서버는 요청한 리소스를 반환함 정적 데이터 : HTML 문서, 이미지, CSS, Javascript 와 같이 컴퓨터에 저장되어 있는 파일 동적인 결과 : 웹 서버에 의해서 실행되는 프로그램을 통해 만들어진 결과물 종류 Apache, Nginx,..
CORS(Cross Origin Resource Sharing) : 교차 출처 리소스 공유 - HTTP 헤더를 사용하여 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 것 -웹 앱은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 Cross-Origin HTTP 요청을 실행 -예시 : https://domain-a.com 의 프론트엔드 Javascript 코드에서 XMLHttpRequest를 사용하여 https://domain-b.com/data.json 을 경우 SOP(Same Resource Policy) : 동일 출처 정책 - 브라우저가 교차 출처 HTTP 요청을 제한하는 것 - 요청을 보내기 위해서는 요청을 보내고자 하..
HTTP와 HTTPS의 등장 HTTP는 통신 시 정보를 평문으로 주고 받는다. TCP/IP는 도청 가능한 네트워크 이므로 패킷을 수집하여 정보를 가로챌 수 있다. HTTPS: 통신을 암호화하는 프로토콜과 조합해 통신 내용을 암호화 할 수 있다. HTTP 메시지에 포함된 콘텐츠만 암호화 하는 것이다. 통신 상대를 확인하지 않아 웹 서버에 접근 제한이 없는 경우 request가 오면 상대가 누구든지 response를 반환해야 한다. 이로 인해 DoS 공격이 발생할 수도 있다. SSL은 상대를 확인하는 수단으로 인증서를 제공한다. 신뢰할 수 있는 제 3 기관에 의해 발행된 것으로 서버나 클라이언트를 증명한다. 완전성(정보의 정확성)을 증명할 수 없다. 서버 또는 클라이언트에서 수신한 내용이 송신 측에서 보낸 ..
HTTP란? HTML문서와 같은 리소스를 가져올 수 있도록 해주는 프로토콜이다. 클라이언트-서버 간 요청-응답 프로토콜로 수신자 측에 의해 요청이 초기화된다. 클라이언트가 서버에 HTTP 요청을 보내면 서버는 응답을 반환한다. 응답에는 요청에 대한 상태정보와 요청된 리소스를 포함할 수 있다. 클라이언트와 서버는 (데이터 스트림과 다르게) 개별적인 메시지 교환을 통해 통신한다. HTTP 요청 메소드 HTTP는 요청 메소드를 정의해 주어진 리소스가 수행하길 원하는 행동을 나타낸다. 메소드들은 서로 다른 의미를 구현하지만, 일부 기능을 공유하기도 한다. 요청 메소드는 안전하거나, 캐시 가능하거나, 멱등성을 가질 수 있다. GET : 요청 URI에 의해 식별되는 모든 정보(엔티티)를 검색하는 것을 의미한다.(지..