Proxy 모든 출처의 리소스를 허용한다면 보안에 큰 문제를 야기할 수 있습니다. 그래서 브라우저는 동일 출처의 리소스만 접근을 허용하는 정책을 기본적으로 채택하고 있으나 어플리케이션을 사용하면서 출처가 다른 리소스를 사용할 수 밖에 없으므로 CORS를 통해 그 제한을 해제할 수 있습니다. 하지만 모든 출처의 접근을 허락한다면 보안성이 낮아지고 해킹 위험이 높아지는 굴레에 들어오게 됩니다. 따라서 모든 도메인의 접근을 허용해서는 안되고 특정 도메인을 허용하도록 구현해야합니다. 정석대로라면 프론트엔드에서 백엔드에게 특정 도메인을 허용해달라는 요청을 보내면 백엔드에서 응답헤더에 필요한 값들을 넣어 전달을 해주어야 합니다. 하지만 리액트 라이브러리나 Webpack Dev Server에서 제공하는 Proxy ..
OAuth 직접 서버에서 인증과 관련된 로직을 처리할 필요 없이 인증을 중개하는 외부 서버를 이용한기술 학습목표 OAuth의 키워드를 설명할 수 있다. Authorization Code와 Access Token의 차이에 대해 이해할 수 있다. Authorization 서버와 Resource 서버의 차이에 대해 이해할 수 있다. 소셜 로그인 인증 방식은 OAuth 2.0이라는 기술을 바탕으로 구현된다. 전통적으로 서버에서 인증을 처리해주는것과 달리 OAuth는 인증을 중개해주는 매커니즘이다. 보안된 리소스가 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜이다. 이미 사용자 정보를 가지고 있는 웹 서비스에서 사용자의 인증을 대신 해주고, 접근 권한에 대한 토큰을 발급한 후, 이를..
Hashing 가장 많이 쓰이는 암호와 방식 중 하나. 복호화가 가능한 다른 암호화 방식들과 달리, 해싱은 암호화만 가능하다. 🔗해싱해보기 솔트란? 소금을 치듯이 해싱 이전 값에 임의의 값을 더해 데이터라 유출되더라도 해싱 이전의 값을 알아내기 더욱 어렵게 만드는방법 해싱의 목적? - 왜 복호화가 불가능한 암호화 방식 사용? 데이터 그 자체 사용하는 것이 아니라 동일한 데이터를 사용하고 있는지만 체크하기 때문 - 해싱은 민감한 데이터를 다루어야 하는 상황에서 데이터 유출의 위험은 줄이면서 데이터의 유효성을 검증하기 위해서 사용되는 단방향 암호화 방식 Token 토큰을 사용하면 사용자의 인증 정보를 서버가 아닌 클라이언트 측에 저장할 수 있다. 세션 기반 인증의 한계? - 세션 기반 인증은 서버에서 유저의..
cookie 쿠키는 서버에서 클라이언트에 영속성 있는 데이터를 저장하는 방법 서버는 클라이언트의 쿠키를 이용하여 데이터를 가져올 수 있다. 쿠키를 이용하는 것은 서버 -> 클라이언트, 클라이언트 -> 서버로 쿠키를 전송하는 것도 포함한다. 서버가 클라이언트에 특정한 데이터를 저장할 수 있다. 데이터를 저장한 후 아무 때나 데이터를 가져올 수는 없다. 데이터를 저장한 이후 특정 조건들이 만족 되어야 다시 가져올 수 있기 때문이다. 여기서 1.특정 조건들은 아래와 같은 코드처럼 http 헤더를 이용해 2.쿠키 옵션으로 표현할 수 있다. 1. 특정 조건 'Set-Cookie':[ 'cookie=newJeans', 'Secure=Secure; Secure', 'HttpOnly=HttpOnly; HttpOnly'..
터널링이란 인터넷상에서 데이터를 안전하게 전송하기 위해 사용되는 기술입니다. 비용과 시간이 많이 드는 인증서 방식과는 달리 공용 인터넷을 사용해서 데이터를 안전하게 전송합니다. ngrok은 HTTP로 만들어진 서버를 HTTPS 프로토콜로 터널링 해주는 프로그램입니다. 로컬 서버를 외부에서 접근 할 수 있도록 터널을 열고, 공용 인터넷을 통해 데이터를 전송할 때, 데이터를 암호화하고 안전하게 전송합니다. 터미널에 ngrok http [포트번호] 이렇게 입력했더니 저런 오류 페이지가 한무 반복되었다.. HTTPS를 포워딩하려면 ngrok 홈페이지에서 인증토큰을 받게 되는데 이를 등록하면 HTTP와 다르게 주소형식으로 입력을 해야한다. 따라서 터미널에 아래와 같이 입력을 한다. ngrok http https:..
클라이언트가 서버랑 통신을 하려면 정해져있는 규약에 따라 소통을 해야한다. 이때 따르는 규약이 HTTP 프로토콜(방법)이며 실제로 주고받는 메세지를 HTTP 메세지라고 한다. 규약은 영어로 rule 국어사전에는 상호 간에 약속한 내용을 기록한 문서라는 뜻이다. 따라서 HTTP는 약속한 내용에 따라 작성해야하는 문서이고 웹에서 HTML,JSON 등의 정보를 HTTP에 따라 작성해서 서버와 통신을 할 수 있다. HTTP 동작 방식 HTTP Messages를 주고받으며 클라이언트와 서버 사이에서 데이터가 교환된다. ✔️무상태성 여기서 HTTP는 데이터를 교환하는 교환하는 역할만 할 뿐 어떠한 상태를 저장하진 않는다. 예를 들어서 쇼핑몰에서 장바구니에 상품을 담았을때의 상태는 HTTP에 의해 저장되지 않는다. ..
1. 웹표준 웹표준이란? 웹과 인터넷용어를 혼용해서 사용하는 경우가 많다. 사실 나또한 스터디를 하기전에는 둘의 차이를 정확히 알지 못하고 있었다. 인터넷은 '전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망'이란 의미이며 포괄적인 개념으로 웹 뿐만아니라 온라인 게임, 모바일 앱등 네트워크를 사용하는 서비스들을 모두 포함한다. 웹은 문서, 이미지, 영상등 다양한 정보를 다른 사람들과 공유할수 있는 '공간'을 의미한다. 이 공간에서 사람들은 댓글을 달고 소통할 수 있다. 과거에는 서로 다른 브라우저끼리 호환이 안되어서 댓글 기능은 물론 화면조차 표시되지 않은 일이 잦았다. 웹을 정상적으로 구동시키기 위해서 개발자들이 브라우저마다 따로 개발을 해줘야 했었는데 이러한 수고를 없애기 위해서 웹 개발의 형식을 통..