반응형
express-session
쿠키로만 로그인 기능을 구현하면 보안상 매우 치명적인 결함이 존재한다. 로그인을 할 수 있는 정보인 쿠키값이 그대로 노출되기 때문이다. 이때 express의 미들웨어인 session을 이용하면 이러한 문제점을 보안할 수 있다.
아래 사이트에서 세션에 대한 사용방법과 예가 나와있다.
http://expressjs.com/en/resources/middleware/session.html
페이지에 들어가 보면 세션 스토어라는 여러가지 기능들을 나열해 놓은 것도 확인 할 수 있다.
예시 코드
express-session.js
var express = require('express')
var parseurl = require('parseurl')
var session = require('express-session') //세션 세팅 추가
var FileStore = require('session-file-store')(session) //세션 스토어 세팅 추가
var app = express()
//아래 미들웨이가 세션을 적용한 코드이다.
app.use(session({
secret: 'asadlfkj!@#!@#dfgasdg',
resave: false,
saveUninitialized: true,
store:new FileStore() //파일 스토어라는 세션 스토어라는 기능을 이용하여 따로 세션 값들을 새로운 파일에 담았다.
}))
//세션의 프로퍼티 num 값을 1씩 증가하도록 간단한 테스트 코드를 만들어 놓았다.
app.get('/', function (req, res, next) {
//초기화면에 세션이 get의 두번째 인자인 콜백함수의 첫번째 인자의 프로퍼티로 들어가는 것을 알 수 있다.
console.log(req.session);
if(req.session.num === undefined){
req.session.num = 1;
} else {
req.session.num = req.session.num + 1;
}
res.send(`Views : ${req.session.num}`);
})
app.listen(3000, function () {
console.log('3000!');
});
세션이 발동되자 자동으로 파일 스토어 기능이 발동되어 새로운 세션 파일이 따로 만들어졌다. 이로써 실제 로그인 기능에서 중요한 정보를 노출시키지 않고 이렇게 보안된 파일에 따로 쿠키값들을 저장할 수 있게 된 것이다.
새로고침을 할때마다 1씩 증가한다. 모두 세션이라는 기능을 통해 작동하고 있다.
반응형
'프로그래밍 개발 > Express' 카테고리의 다른 글
Express -passport.js 설치하기 (0) | 2021.01.18 |
---|---|
Express - session을 이용한 로그인 인증 구현 (0) | 2021.01.16 |
Express - 쿠키를 이용한 인증 기능 구현하기 (0) | 2021.01.15 |
Express - 쿠키의 옵션 (0) | 2021.01.15 |
Express - 쿠키의 기본 개념 (0) | 2021.01.15 |
댓글