express
-
req.cookies와 req.header.cookie 의 차이점express 2022. 3. 21. 06:37
req.cookies와 req.header.cookie의 차이점에 대해 궁금하여 찾아보았다 req.header.cookie: express를 설치하면 기본적으로 사용 할 수 있다. req의 header로 실려오는 cookie를 그대로 가져온다. 여기서 중요한게 '그대로'이다. 객체형태로 파싱하지 않고 그대로 가져오므로 express내부에서 바로 사용 할 수 없다! req.cookies: express에서 이것만 쓸 수 없다. 해보니 undefined가 뜬다. cookier-parser 를 설치 한 이후 미들웨어로 실행을 해줘야지 express에서 req.cookies를사용가능하다. 차이점으로는 쿠키를 파싱하여 js의 req.cookies 객체로 만들어 준다!! 말보다 코드이니 예제를 보자 EX) 밑의 스..
-
JWT(Jason Web Token)express 2022. 1. 20. 00:00
JWT Authentication 인증 로그인/ 일정 권한이 주어진 사용자임을 id pw등을 통해 인증받는것 Authorization 로그인이 유지되는 상태에서 일어나는 일 한번 인증을 받은 사용자가 이후 서비스의 여러 기능들을 사용할 때 로그인후 친구의 목록을 보거나, 내 담벼락에 글을 작성하거나, 친구게시물에 내아이디로 좋아요나 댓글달기와 같이 내 계정으로만 할 수 있는 활동을 시도할 때 페북이 내가 로그인 되어있음을 알아보고 허가를 해주는것 로그인이 생각보다 무거운 작업 이를 반복하지 않기 위해서 session이란게 나왔다. 쿠키(브라우저에 저장되는 정보) 세션: 어떤 사용자가 서버에 로그인이 지속적으로 되어있는 상태를 session이라고 함 사용자가 로그인에 성공하면 서버는 '세션표딱지'를 출력 ..
-
Cors(Cross Origin Resource Sharing)express 2022. 1. 19. 22:24
교차 출처 리소스 공유 (CORS) 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. API로 정보를 받아오기 위해 프론트에서 HTTP요청을 보냈을 때 미리 설정을 해주지 않으면 Cors문제로 막힘 어디서 부터 보낸 요청이 막히는가? 정답: 브라우저: SOP(Same Origin Policy)를 통해서 이를 막음 왜? 어떤 홈페이지에 접속한다는것은 그 사이트의 HTML, CSS, JS가..
-
HTTP Cookies and Sessionexpress 2022. 1. 17. 12:00
쿠키와 세션 사용하는 이유? HTTP프로토콜의 특징에서 비롯되는 약점을 보완하기 위해 사용한다. 먼저 http프로토콜의 특징이자 약점을 살펴보자. HTTP프로토콜 1. Connectionless. Protocol 비연결지향 클라이언트가 서버에 요청했을때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는다. 2. Stateless Protocol (상태정보 비유지) 클라이언트의 상태정보를 가지지 않는 서버처리방식. 클라이언트와 첫번째 통신에서 데이터를 주고받았다 해도, 두번째 통신에서 이전데이터를 유지하지 않는다. BUT, 실제로는 데이터유지가 필요한 경우가 많다. 정보가 유지되지 않으면 매번 페이지 이동시 마다 로그인을 해야하거나 장바구니에서 상품을 선택했는데 구매페이지에서 상품의 정보가 사라지거나 하는 경..
-
로그인 암호화, 사용자 비밀번호 암호화하기express 2022. 1. 16. 18:32
Bycrypt는 레인보우 테이블 공격 방지를 위해 솔트(Salt)를 통합한 적응형 함수 중 하나라고 한다. SHA 종류의 암호화는 GPU연산에 유리한 32비트 논리 및 연산만 사용하기 때문에 GPU 연산을 이용한 공격에 취약하다고 한다. 그래서 Bcrypt 설계자는 Blowfish를 이용해 구현했다고 함. 레인보우 테이블 : 해시 함수를 사용하여 변환 가능한 모든 해시 값을 저장시켜 놓은 표 솔트 : 데이터, 비밀번호, 통과암호를 해시 처리하는 단방향 함수의 추가 입력으로 사용되는 랜덤 데이터 1. bcrypt 모듈 설치 > npm install bcrypt 2. bcrypt모듈 불러오기+암호화 정도 설정 const bcrypt = require("bcrypt"); const saltRounds = 10..
-
express 기초express 2022. 1. 14. 18:57
https://expressjs.com/ko/4x/api.html#req 서버 메소드들 나와있음 사용자가 브라우저를 통해 request를 서버에 준다. 서버는 그 request를 받고 response를 준다. const express = require('express') const POST = 4000; const app = express(); const gossipMiddleware = (req, res, next) => { console.log(`someone is trying go to ${req.url}`); next(); }; const handleHome = (req, res) => { //we(server) get req we return res return res.send("i am hom..