CORS Cross-Origin Resource Sharing의 약자로 서로 다른 출처에서 리소스를 공유한다는 뜻이다. 기본적으로 브라우저는 악의적인 웹사이트나 앱에서 사용자의 브라우저를 통해 다른 도메인에 있는 정보에 접근하여 보안상의 위협이 될 수 있기 때문에 교차 출처의 HTTP 요청을 제한한다. 언제 사용하지? 서버 사이드 렌더링의 경우 유저 A의 브라우저에서 B라는 도메인 사이트에 접속하면 B에서 바로 웹 페이지를 제공한다. 이렇게되면 요청을 보낸 B에서 응답이 발생하여 동일한 출처를 가지기 때문에 CORS 설정이 따로 필요하지않다. 하지만 클라이언트 사이드 렌더링의 경우 B라는 도메인에 접속하면 B에서 페이지를 받고 C 서버로부터 데이터를 받아서 페이지를 렌더링하기 때문에 서로 다른 출처를 가..
CSRF cross site request forgery의 약자로 악의적인 사이트에서 위조된 요청을 통해 공격하는 것을 뜻한다. 예를 들어 유저 A가 N 은행 사이트에 로그인해서 인증된 상태일 때, 악의적인 사이트 X에서 N 사이트에 대해 유저 A의 브라우저로 비밀번호 변경 요청을 보낸다면? 실제 유저 A의 N 사이트 비밀번호와 아이디를 얻어 X 사이트의 해커가 유저 A의 계정으로 로그인을 할 수 있게된다. 이런식으로 인증된 유저의 브라우저를 통해서 공격하는 방식이 바로 CSRF이다. XSS Cross-Site Scripting의 약자로 악의적인 사이트에서 강제로 스크립트 코드를 실행해서 유저의 정보를 탈취하는 공격을 뜻한다. 예를 들어 유저 A가 X 사이트에 접근했을 때 X 사이트에서 스크립트를 실행해..
JWT란?JSON 객체로 안전하게 정보를 전송하기 위한 방식디지털 서명이 되어있기 때문에 안전하다.JWT 구조JWT는 Header, Payload, Signature 3가지를 점으로 구분하여 xxxx.yyyy.zzzz 구조를 가지고 있다.Header와 Payload는 base64로 인코딩 되어있고, signature는 Header, Payload, Secret key를 HS256 방식으로 암호화한 다음 base64로 인코딩 되어있다. Header: 알고리즘, 타입 => "HS256으로 암호화 한 JWT이다"라는 정보가 들어있다.Payload: 정보 => name, userId 등등Signature: [헤더, 페이로드, 비밀 키]를 헤더에 있는 알고리즘으로 암호화 암호화HMAC..