til69 XSS 공격에 안전한 소셜 로그인 구현 (카카오) XSS 공격에 안전한 소셜 로그인 구현 (카카오) 카카오 로그인 프로세스는 다음과 같이 진행했다. 클라이언트 서버 : 카카오 서버에 access_token을 요청하여 전달 받는다. 클라이언트 서버 : 백엔드 서버로 access_token을 넘겨주며 로그인 API를 호출한다. 백엔드 서버 : 클라이언트 서버에서 전달받은 access_token을 가지고 카카오 API를 호출하여 사용자 정보를 가져온다. 백엔드 서버 : JWT 방식을 사용하여 백엔드 서버에서 클라이언트 서버에 JWT token을 전달해준다. 이때 token을 Cookie에 담아서 전달한다.(httpOnly) 이번 포스팅은 백엔드 서버에 초점을 맞춰 3, 4번 내용을 작성하였다. 1. 카카오 서버에서 받은 access_token을 가지고 사용자.. 2021. 12. 12. Django에서 S3에 파일 업로드 Django에서 boto3를 사용하여 S3와 연결 및 파일 업로드 준비사항 AWS IAM user 셋업 AWS S3 bucket 셋업 1. boto3 라이브러리 설치 boto3는 파이썬용 AWS라이브러리이다. pip install boto3 2. 코드 작성 2-1. 엔드포인트 우선 호출하는 부분에서 어떻게 호출할 것인지를 작성해본다. 장고에서는 전송된 파일이 request.FILES를 통해 전달된다. FileUpload라는 wrapper class를 통해 S3 클라이언트를 생성하고 ,파일업로드 기능을 수행하는 함수를 호출하여 profile_image_url 값을 리턴받는다. from storages import FileUpload, s3_client class ProfileUploadView(View):.. 2021. 12. 5. TIL56 | EC2서버에 Docker설치 및 배포(CentOS, Node.js, Dockerfile) 시작하기 전... 개발환경: ubuntu 18.04, node v14 서버환경: centos7, node v16 CentOS는 처음 접해봐서 명령어도 익숙하지 않았는데 nodejs로 개발한 앱을 Docker로 배포해보고 싶었다. Docker도 Django로 개발한 앱을 연습삼아 배포해본 게 다였기 때문에 익숙하지 않아서 Dockerfile을 작성하는게 막막했었는데 그래도 구글링을 거쳐 EC2 서버에 배포를 완료했다. 다음번 시행착오를 줄이기 위해 기록한다. 이 글은 저의 주관적인 경험을 작성한 글이므로 잘못되거나 불필요한 내용이 포함되어 있을 수 있습니다. 😣️ 1. Dockerfile 작성 #./Dockerfile #기반이 될 이미지 FROM node:16.13.1 # 작업디렉토리(default)설정 .. 2021. 12. 3. TIL55 | Docker 주요 명령어와 Dockfile 1. 설치 우분투에서 도커 설치하기 sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" sudo apt update apt-cache policy docker-ce sudo apt install docker-ce 2. docker를 실행하기 위해 필요한 명령어 :: 컨테.. 2021. 12. 3. TIL54 | Docker란 가상화? 가상화 개념이 나온 이유 현대의 컴퓨터는 많은 발전을 거듭해 성능이 좋아졌다. 현대의 컴퓨터에 한가지 일만 시키기에는 남는 자원이 아깝다. 서버를 늘릴 때 마다 서버에 비용투자를 하기에는 부담이 크다. 완전히 격리된 환경을 제공하기 위해서 Docker와 기존 가상화의 차이점 VMs AWS의 EC2 OS위에 guest OS를 띄우는 방식 시간이 오래걸리고 무거움 (부하가 많이 걸린다.) 하이퍼바이저와 같은 지나친 간섭의 유무 Linux Container MSA : 서비스를 micro 단위로 나누는 것 하나의 서버에 user, products, 등등 모든 API를 두면 product의 트래픽이 증가했을 때 다른 API에도 영향을 줄 수 있다. Docker engine이 컨테이너(프로세스)를 띄워줌 .. 2021. 12. 3. Amazon Virtual Private Cloud (VPC) Public subnet Internet Gatewary : Internet과 EC2가 서로 통신이 가능하도록 해주는 것 개발서버는 위의 구성으로 배포하면 안된다. Public subnet이기 때문에 인터넷에서 접근이 가능하지만 개발 서버는 Public으로 설정하면 안됨. => DB같은 중요한 서비스들은 개발자들만 접근가능하도록 해야하기 때문에 프론트엔드 서버는 모든 사용자들이 접근 가능해야하기 때문에 Public subnet으로 설정되어야 한다. subnet : VPC를 좀 더 작은 네트워크 단위로 나눠주는 것(subneting) Public subnet + Private subnet Public subnet에는 Front, Backend API Server(EC2) Private subnet에는 RD.. 2021. 11. 24. 이전 1 2 3 4 5 6 ··· 12 다음 반응형